对于单台服务器上的OS安装,我们可以手动进行,若是一个集群服务中的多个节点超过50台服务器的OS安装,手动安装显然是不可行的,因此作为系统运维工程师自动化运维是我们必不可缺的技能。
PXE是一种引导协议,它通过网络来启动系统安装过程。
一、环境准备
在Centos7 操作系统上实现PXE的自动化部署OS,所依赖的服务有:dhcp, tftp, fileserver(http,ftp,nfs),依赖的安装源:kickstart文件,可引导内核-vimlinuz,initrd.img文件。
准备两台虚拟机,一台做PXE服务器,一台不需要安装系统,用于后续PXE客户端装机
准备一台初始化完成虚拟机
-PXE服务器的配置
需要两张网卡,一张做桥接模式,一张做VMnet1
服务器地址为192.168.158.10
- 修改配置文件
[root@server1 ~] yum -y install tftp
[root@server1 ~]vi /etc/xinetd.d/tftp #进入配置文件修改内容
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot -c #-s 指定存储路径 -c 允许上传
disable = no #开启tftp
per_source = 11
cps = 100 2
flags = IPv4
}
[root@server1 ~] yum -y install dhcp vsftpd
[root@server1 ~] vi /etc/dhcp/dcpd.conf
ddns-update-style none;
next-server 192.168.158.10; #指定tftp服务器地址
filename"/pxelinux.0"; #引导文件tftp上的位置
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.158.100 192.168.158.200; #通过PXE装机的主机可以动态获取地址
option routers 192.168.158.10; #服务器地址
option domain-name-servers 8.8.8.8, 114.114.114.114;
}
- 使ftp客户端可以访问光盘装机
[root@client1 ~] mount /dev/cdrom /var/ftp/pub/
- 安装引导加载程序
[root@client1 ~] yum -y install syslinux
复制网络启动所需要文件到服务器的根目录下
[root@server1 ~] cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@server1 ~] mkdir /var/lib/tftpboot/pxelinux.cfg/
[root@server1 ~] cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root@server1 ~] cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/
[root@server1 ~] cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/
[root@server1 ~] cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/
- 编辑安装的配置文件
[root@server1 ~] vi /var/lib/tftpboot/pxelinux.cfg/default
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.158.10/pub
ks=ftp://192.168.158.10/ks.cfg
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.158.10/pub
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.158.10/pub
- 启动所有服务,并关闭防火墙、核心防护
[root@server1 ~] systemctl start dhcpd
[root@server1 ~] systemctl start vsftp
[root@server1 ~] systemctl stop firewalld
[root@server1 ~] setenforce 0
- 安装应答文件kickstart,可以图形化界面想到来配置安装应答文件
[root@server1 ~] yum -y install system-config-kickstart
- 图形化界面打开kickstart 进行配置
添加分区/分配的容量要足够大,否则无法安装
保存到/var/ftp目录下
[root@server1 ~] vi anaconda-ks.cfg
复制红框内的内容到/var/ftp/ks.cfg中
以上就配置完成了,
客户机
网卡类型为VMnet1
新建一台虚拟机启动,选择网络启动,开始PXE远程安装,无需任何操作,出现如下界面,可以看到DHCP服务动态分配到了192.168.10.150的地址,以及正在加载一些引导程序。最终加载完成到安装界面。
如果觉得有用的话,欢迎大家点赞收藏呀。