Linux云计算基础篇(24)-PXE批量安装和Kickstart工具
一、网络安装系统技术-PXE
PXE(Preboot Execution Environment):预启动执行环境。它允许系统通过网络上引导,并不需要物理存储介质
网络安装系统的优势:
1.远程实现安装操作系统,无需现场插入光盘等介质;
2.同步安装操作系统,所有的服务器支持同步安装;
3.自动化安装,根据已编写好的脚本配置文件,实现无人值守安装;
二、PXE批量安装的工作流程
PXE安装系统的必要条件:
待安装系统的机器必须支持网络引导启动
PXE网络引导安装系统所需的服务和软件:
DHCP服务:分配信息、指定tftp服务器地址
TFTP服务:提供网络引导程序、引导配置文件、内核文件和驱动程序的下载
HTTP服务提供网络源安装系统
pxelinux.0:提供网络引导程序
PXE安装流程:
客户机通过DHCP获取到IP地址
通过TFTP服务器下载所需的内核文件、引导程序、驱动程序
通过HTTP服务进行网络源安装系统
三、操作步骤
pxelinux.0概述
pxelinux.0是一个网络引导程序的文件
主要在PXE环境中为客户端提供引导功能
作用:为没有安装操作系统的机器提供引导功能
软件包:syslinux-nonlinux或syslinux-tftpboot
1.部署 DHCP 流程
安装 DHCP Server
[root@web01 ~]# yum -y install dhcp-seiver
[root@web01 ~]# rpm -qc dhcp-server
[root@web01 ~]# cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@web01 ~]# vim /etc/dhcp/dhcpd.conf
# option definitions common to all supported networks
option domain-name"example.com";
option domain-name-servers 192.168.6.254;
# A slightly different configuration for an internal subnet.
subnet 192.168.6.0 netmask 255.255.255.0 {
range 192.168.6.2 192.168.6.99;
option domain-name-servers 192.168.6.254;
option domain-name"example.com";
option routers 192.168.6.254;
option broadcast-address 192.168.6.255;
default-lease-time 600;
max-lease-time 7200;
}
[root@web01 ~]# systemctl enable dhepd.service --now
[root@web01 ~]# systemctl status dhcpd.service
[root@web01 ~]# netstat -tulnp | grep :67
[root@web01 ~]# systemctl disable firewalld.service --now
2.部署tftp服务
[root@web01 ~]#yum -y install tftp-serve
[root@web01 ~]# systemctl enable tftp.socket --now
[root@web01 ~]# netstat -tulnp l grep :69
[rooteweb01 ~]# cd /var/lib/tftpboot/
[root@web0l tftpboot]# ls
[root@web0l tftpboot]# pwd
var/lib/tftpboot
[root@web01 ~]# vim /etc/dhcp/dhcpd.conf
# option definitions common to all supported networks...
option domain-name "example.com";
option domain-name-servers 192.168.6.254;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.6.101;
filename"pxelinux.0";
[root@web01 ~]# systemctl restart dhcpd.service
[root@web01 ~]# yum provides "/pxelinux.0"
[root@web01 ~]# yum -y install syslinux-nonlinux
[root@web01 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #配置pxelinux.0引导文件到tftp目录
[root@web01 ~]# cd /var/www/html/pub/
[root@web01 ~]# pub]# cd isolinux/
[root@web01 isolinux]# vim isolinux.cfg
[root@web01 isolinux]# vim boot.msg
[root@web01 isolinux]# cp /var/www/html/pub/isolinux/* /var/lib/tftpboot/ #将光盘中的isolinux目录下的所有文件都拷贝到/var/ib/tftpboot/下
[root@web01 isolinux]# cd /var/lib/tftpboot/
[root@web01 tftpboot]# mkdir pxelinux.cfg #创建/var/lib/tftpboot/pxelinux.cfg目录
[root@web01 tftpboot]# cp isolinux.cfg pxelinux.cfg/default #将光盘中的isolinux目录下的isolinux.cfg文件拷贝至目录且修改名称为defualt
[root@web01 pxelinux.cfg]# pxelinux.0 --->/var/lib/tftpboot/pxelinúx.cfg/default
[root@web01 pxelinux.cfg]# chmod 644 default
[root@web01 pxelinux.cfg]# vim defaulte
label linux
menu label ^AUTO Install CentOS Linux 8
menu default
kernel ymlinuz
append initrd=initrdimg inst.stage2=http://192.168.6.101/pub quiet
-----------------------------------------------------------------------------------------------------------
四、kickstart自动化脚本
kickstart脚本定义了系统安装过程中的配置选项,例如磁盘分区、用户密码设置、时区、网络配置、软件包等内容。系统安装的过程中读取此文件,来进行系统安装的配置,而不需要
人工干预
优势:
自动化部署,根据脚本配置自动选择分区、网络配等内容
可重复性,一个kickstart脚本可以反复使用
自定义配置,可以自定义软件包的安装、网络信息配置、用户管理等
kickstart脚本文件可通过system-config线ickstart工具获得,但从8版本开始已经不再提供此工具但是在/root目录下提供一个anaconda-ks.cfg模板文件。
[root@web01 ~]#vim /var/www/html/ks/ks99.cfg# Run the Setup Agent on first bootfirstboot --disable
ignoredisk --only-use=sda# Partition clearing informationclearpart --all--initlabel# Disk partitioning information
part /boot --fstype="xfs" --ondisk=sda --size=500
part pv.100 --grow --size=40000 --ondisk=sda#Very important to have the two part lines before the lvm stuffvolgroup vg0 --pesize=4096 pv.100logvol / --fstype=xfs --name=root --vgname=vg0 --size=30720logvol / home --fstype=xfs --name=home --vgname=vg0 --size=2048logvol swap --fstype swap --name=swap --vgname=vg0 --size=2048#System timezone
timezone Asia/Shanghai --isUtc --nontp# Root passwordrootpw --iscrypted $6$pypm5MfRxY.T9KoR$j3seuyMi hovt] iTiHHnKIhkgnzKbPPdFuEHa&MMcj osf9j hbxshs8akQceoZYzqpXJ0XHtVaC4Rsa5Hmc7Wouser--name=admin--password=$6$9NGMGMC88G9nVR8$h10RyWxe/of2VLt2EC/fYa0Kb5albSsvduiH1YPD.Xomm
lvZ5vxaUkYmaSWekItd0puEsfPQkVr4uTi2JuhKG1 --iscrypted --gecos="admin"%addon com_redhat kdump --enable --reserve-mb='auto'%end%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty%end%post#!/bin/bash
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/Cent*/etc/yum.repos.d/bak
cat>/etc/yum.repos.d/dvd.repo << END
[BaseOS]
name=CentOS 8 BaseOS baseurl=http://192.168.6.101/pub/Base0S
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial[AppStreaml
name=Cent0S 8 AppStream
baseurl=http://192.168.6.101/pub/AppStream
enabled=1
gpgcheck-0
ENDyum clean all
yum -y install httpd
systemctl enable httpd --now%end
通过kickstart脚本实现无人值守安装系统
通过system-config-kickstart工具生成ks.cfg脚本文件
无论是在哪个版本通过工具生成的kicstart脚本文件都是通用
通过7版本的system-config-kickstart工具生成脚本文件
在其他版本上安装system-configeRickstart图形化工具
配置本地YUM仓库
安装软件包system-confg kickstart
执行命令system-cong-kickstart
通过kickstart脚本实现无人值守安装系统
打开system-config-kickstart图形化工具,如下图
安装此工具只是为了通过工具生成kickstart脚本文件

system-config-kickstart工具无法安装软件包?
·默认情况下,当选择《软件包选择》的时候,会显示没有软件包
产生原因:开发者定义需要设置yum仓库
解决办法:修改yum仓库的仓库名为development


------------------------------------------------------------------------------------------------------
system-config-kickstart工具生成脚本文件(一)
基本配置:
选择默认语言、键盘布局、时区选择
选择设置的root密码
选择目标系统的硬件架构、安装后是否重启。文本安装/图形化安装
-------------------------------------------------------------------------------------------------------
system-config-kickstart工具生成脚本文件(二)
安装方法:
选择执行全新安装
选择HTTP安装
-------------------------------------------------------------------------------------------------------
system-config-kickstart工具生成脚本文件(三)
安装引导程序:
选择安装新的引导装载程序
--------------------------------------------------------------------------------------------------------
system-config-kickstart工具生成脚本文件(四)
安装分区信息:
选择清楚引导记录、删除现存分区、初始化磁盘标签
自定义分区
-------------------------------------------------------------------------------------------------------
system-config-kickstart工具生成脚本文件(五)
·网络配置:
选择添加网络设置,指定网络获取方式
------------------------------------------------------------------------------------------------------
system-config-kickstart工具生成脚本文件(六)
验证:
有需求可自定义,这里保持默认
------------------------------------------------------------------------------------------------------
system-config-kickstart工具生成脚本文件(七)
·防火墙配置:
有需求可自定义,这里保持默认
------------------------------------------------------------------------------------------------------
system-config-kickstart工具生成脚本文件(八)
显示配置:
安装图形化桌面或者是字符页面
------------------------------------------------------------------------------------------------------
system-config-kickstart工具生成脚本文件(九)
·软件包选择
选择需要安装的软件包即可(不选择会出现无法安装的情况,选择任意的软件包安装即可)
-------------------------------------------------------------------------------------------------------
system-config-kickstart工具生成脚本文件(十)
预安装脚本:
在安装之前执行的脚本
-------------------------------------------------------------------------------------------------------
system-config-kickstart工具生成脚本文件(十一)
安装后脚本:
在安装系统后执行的脚
-------------------------------------------------------------------------------------------------------
system-config-kickstart工具生成脚本文件(十二)
保存文件:
点击左上角文件-保存
-------------------------------------------------------------------------------------------------------
system-config-kickstart工具生成脚本文件
将生成的kickstart脚本文件传输到PXE服务器
[root@localhost ~] # scp ks.cfg root@192.168.68.150:/var/www/html/
PXE服务器修改引导文件,执行kickstart脚本文件
在PXE服务端修改启动的引导文件/var/lib/tftpboot/pxelinux.cfg/default
修改默认的倒计时时间为5秒
default vesamenu.c32
timeout 50
指定默认的标签位于第一项安装系统
指定kickstart脚本文件路径

