一、自动化部署原理
1、PXE原理
PXE(Preboot execution Environment),即全程预启动执行环境,也称之为预执行环境。此环境提供了一种使用网络接口启动计算机的机制。这种机制使计算机的启动不用依赖本地数据存储设备(如硬盘)或本地已安装的操作系统。
2、Kickstart
Kickstart是一种无人值守的安装方式。其工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成ks.cfg文件。在安装过程中,安装程序会首先去查找ks.cfg这个文件,当找到合适的参数时,就会采用所找到的参数进行进一步的安装,然而,当没有找到合适参数的时候,就需要安装人员进行手工干预填参了。
3、DHCP
dhcp用来给将要安装系统的客户主机分配IP地址,也可以指定文件位置。
4、HTTPD
httpd,即超文本传输协议,本服务主要提供系统镜像源以及kickstart的配置文件等。
5、TFTP
本服务主要用来存放PXE的相关文件,例如:系统引导文件。
6、部署流程
(1)PXE客户机发出DHCP请求,向DHCP服务器申请IP地址。
(2)DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告知PXE客户机:TFTP服务器的IP地址和PXE引导程序文件pxelinux.0,默认存放在TFTP服务的共享目录/var/lib/tftpboot/中。
(3)PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。
(4)TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。
(5)PXE客户机向TFTP服务器发起获取ldlinux.c32和pxeilnux.cfg/default的PXE引导配置文件请求。
(6)TFTP服务器响应PXE客户机的请求,将ldlinux.c32和pxeilnux.cfg/default文件传输给PXE客户机。PXE客户端展示pxelinux.cfg/default文件中的引导项,由用户指定选择其中一个引导项,或等待默认时间后根据文件配置中的默认引导项进行自动引导。
(7)PXE客户机根据default文件配置向TFTP服务器发起获取对应引导项的vmlinuxz压缩的虚拟机linux内核文件的请求。
(8)TFTP服务器响应PXE客户机的请求,将其共享的vmlinuxz文件传输给PXE客户机。
(9)PXE客户机根据default文件配置向TFTP服务器发起获取对应引导项的initrd.img临时文件系统文件的请求。
(10)TFTP服务器响应PXE客户机的请求,将其共享的initrd.img文件传输给PXE客户机。
(11)PXE客户机根据default文件向http、htp、nfs等网络共享服务发起获取对应ks.cfg文件。
(12)PXE客户机读取ks.cfg文件,其参数包括系统语言、时区、root用户密码、磁盘分区、安装文件位置、完成安装后自动重启等。
二、自动化部署流程
1、实验环境
PXE server:
系统:RHEL7.9
IP地址:172.25.254.10
2、基础配置
#配置vmset.sh脚本文件,可通过此脚本快速配置IP地址、DNS、网关、主机名、解析
[root@nginx ~]# cat /bin/vmset.sh
#!/bin/bash
rm -fr /etc/sysconfig/network-scripts/ifcfg-$1
cat > /etc/sysconfig/network-scripts/ifcfg-$1 <<EOF
TYPE=Ethernet
BOOTPROTO=none
NAME=$1
DEVICE=$1
ONBOOT=yes
IPADDR=$2
PREFIX=24
GATEWAY=172.25.254.2
DNS1=114.114.114.114
EOF
nmcli connection reload
nmcli connection up $1
hostnamectl set-hostname