一、部署PXE远程安装服务
- 客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导。
- 网络中有一台DHCP服务器以便客户机自动分配IP地址、指定引导文件位置。
- 服务器通过TFTP(Trivial Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。
1.1 搭建PXE远程安装服务器
1. 准备CentOS 7安装源
CentOS 7 的网络安装源一般通过 HTTP、FTP 协议发布。现在采用FTP协议发布安装源。先在服务器上部署一个yum软件仓库,并安装vsftpd服务:
mkdir /var/ftp/centos7
cp -rf /media/cdrom/* /var/ftp/centos7/ #/media/cdrom目录由自己创建,并将系统光盘挂载到这个目录
systemctl start vsftpd
2. 安装并启用TFTP服务
TFTP服务有tftp-server软件包提供,配置文件位于/etc/xinetd.d/tftp。只需将配置文件中的"disable"项的”yes“改为"no",然后启动TFTP服务并设置为开机自启即可。
3. 准备Linux内核、初始化镜像文件
用于PXE网络安装的Linux内核、初始化镜像文件分别为vmlinuz和inited.img,可以从系统光盘获得,在/media/cdrom/images/pxeboot下,将这两个文件复制到tftp服务的目录下(/var/lib/tftpboot)。
4. 准备PXE引导程序
用于PXE网络安装的引导程序为pxelinux.0,由软件包syslinux提供。将该文件也复制到tftp服务的目录下。
yum -y install syslinux
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
5. 安装并启用DHCP服务
vim /etc/dhcp/dhcpd.conf
#下面为要写入配置文件中的文本
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.253;
next-server 192.168.10.254;
filename "pxelinux.0";
}
#保存退出配置文件
systemctl start dhcpd
systemctl enable dhcpd
6. 配置启动菜单文件
启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载初始化镜像。默认的启动菜单文件为default,应放置在/var/lib/tftpboot/中的pxelinux.cfg子目录下。以下是典型的启动菜单配置:
default auto #默认执行auto启动项
prompt 1 #设置是否等待用户选择安装哪个内核
label auto #用来定义(这一项定义为了auto)和分割启动项
kernel vmlinuz #指定内核文件
append initrd=initrd.img method=ftp://192.168.10.254/centos7 #指定初始化镜像文件和文件在网络中的位置。
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.10.254/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=frp://192.168.10.254/centos7
上述配置记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。这时,就可以实现一部分的自动装机过程了,可以新建虚拟机进行测试,打开虚拟机时会显示:
在boot:处会停止,用于选择安装哪个模式。
二、实现Kickstart自动化安装
2.1 准备安装应答文件
在服务器主机中安装system-config-kickstart工具,即可通过图形化向导工具来配置安装应答文件。也可以直接编辑系统安装后自动创建的应答文件(位于/root/anaconda-ks.cfg),这种方式比较复杂,所以以图形化向导工具示例。
1. 配置安装应答参数
通过在输入"system-config-kickstart"可以启动Kickstart配置程序窗口,或者通过桌面菜单“应用程序”→“系统工具”→“Kickstart"也可以打开窗口。打开之后就可以针对基本配置、安装方法、引导装载程序选项、分区信息、网络配置等各种安装设置进行设置了。设置之后保存就会生成一个新的以".cfg"为后缀的文件,最后将该文件复制到/var/ftp/centos7目录下,并在引导菜单文件default中添加ks引导参数以指定应答文件的URL路径。
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.30.254/centos7
#在下方添加
ks=ftp://192.168.10.254/ks.cfg