基础服务:PXE
-
服务介绍
PXE:是一种引导的方式(引导未装系统主机读取引导参数)
KickStart:是一种无人值守安装方式(记录着系统安装过程中一些参数选项配置的文件)
-
无人值守自动装机服务
- 服务角色:PXE Client:表示需要安装操作系统的机器,统称客户端
- TFTP Server:表示安装TFTPD服务的机器
- DHCP Server:表示安装DHCPD服务的机器
在实际的操作过程中往往将TFTP Server,DHCP Server部署在一台服务器上,统称PXE服务端。
- 客户端向服务器DHCP发送IP地址请求,DHCP服务器接收到客户端请求后把IP地址和启动文件pxelinux.0的位置一起发送给客户端。
- 客户端向服务端TFTP发送获取pxelinux0消息,TFTP接收到消息后向客户端发送pxelinux.0大小的信息,客户端反馈信息,当TFTP收到客户端返回的消息后,正式向客户端发送pxelinux.0
- 客户端接受pxelinux.0文件
- 客户端向TFTP发送针对本机的配置信息(在TFTP上的pxelinux.cfg目录下),TFTP将配置文件发送给客户端,客户端根据配置文件执行后续操作
- 客户端向TFTP发送Linux内核信息,TFTP接收到消息后将内核信息发送给客户端。
- 客户端向TFTP发送根文件请求,TFTP接收到消息后将Linux根文件系统返回给客户端
- 客户端启动linux内核
- 客户端进入安装模式
- 无光驱或者光驱损坏,需要安装Linux系统
- 对系统维护不当,导致需要频繁安装linux系统
- 需要大规模批量部署Linux系统
- 客户机网卡支持PXE协议,主板支持网络引导(BIOS)
- 网络中有DHCP服务器为客户端自动分配网络地址,并指定引导文件位置
- 服务器通过TFTP提供引导镜像文件的下载
-
部署
-
安装tftp服务
yum -y install tftp-server xinetd dhcp syslinux system-config-kickstart vsftpd* xinetd mkdir /var/ftp/centos mount /dev/cdrom /var/ftp/centos/ systemctl start vsftpd
-
配置tftp服务
tftp服务由tftp-server软件包提供,默认通过xinetd超级服务进行管理,需要将/etc/xineted.d/tftp中的disable=yes改为no
安装tftp是为了存放引导文件及内核文件来用的
安装vsftp是为了挂载镜像,存储cfg文件来用的
vim /etc/xinetd.d/tftp disable=no systemctl start tftp systemctl enable tftp
-
准备linux内核,初始化镜像文件
linux内核文件和初始化镜像文件可以从光盘中找到,位于images/pxeboot下vmlinuz和initrd.img,将这两个文件复制到tftp服务的根目录下
cd /var/ftp/centos/images/pxeboot cp initrd.img vmlinuz /var/lib/tftpboot/
-
准备pxe引导程序,启动菜单文件
pxe网络安装的引导程序为pxelinux.0 由软件包syslinux提供,安装完软件包后将文件复制到tftp服务的根目录下
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpbooy/
启动菜单用来指导客户端的引导过程,默认启动菜单为default,应放在tftp根目录的pxelinux.cfg目录中
mkdir /var/lib/tftpboot/pxelinux.cfg vim /var./lib/tftpboot/pxelinux.cfg/default default linux#默认入口名称 prompt 0 #1 表示等待用户控制,0表示不等待 timeoout 30 #超时时间 label linux kernel vmlinuz append initrd=initrd.img devfs=nomount method=ftp://192.168.75.111/centos #定义了三个引导入口,分别是图形安装,文本安装,救援模式 Prompt 设置是否等待用户选择 Label 定义并大多个启动项分开 Kernel append 定义引导参数
-
配置并启动DHCP服务
PXE客户端通常是没有安装系统的裸机,肯定要与服务器取得联系并下载相关的引导文件,所以需要预先配置好DHCP服务来自动分配地址并反馈引导文件的位置。
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf vim /etc/dhcp/dhcpd.conf subnet 192.168.75.0 netmask 255.255.255.0{ range 192.168.75.10 192.168.75.30; option domain-name-servers 8.8.8.8; option domain-name "internal.example.org"; option routers 192.168.75.111; default-lease-time 600; max-lease-time 7200; next-server 192.168.75.111; #tftp服务器地址 filename "pxelinux.0"; #pxe引导文件名 } systemctl start dhcpd systemctl restart xinetd
-
创建新的虚拟机并确认和PXE服务器在同一网卡模式上来验证
-
-
使用kickstart实现无人值守安装
使用kickstart工具配置安装应答文件,自动安装 安装过程中的的各种配置,不需要手动干预,提升效率。
-
通过系统命令system-config-kickstart生产cfg配置文件,保存在/var/ftp/pub目录下
-
修改系统中已有的/root/anaconda-ks.cf配置文件模板
!
-
vim /var/lib/tftpboot/pxelinux.cfg/default
default linux
prompt 0
timeout 30
label linux
kernel vmlinuz
append initrd=initrd.img devfs=nomount method=ftp://192.168.80.40/centos ks=ftp://192.168.80.40/pub/ks.cfg
###控制kickstart控制多台label
vim /var/lib/tftpboot/pxelinux.cfg/default
default linux
prompt 1
timeout 300
label linux
kernel vmlinuz
append initrd=initrd.img devfs=nomount method=ftp://192.168.75.111/centos ks=ftp://192.168.80.40/pub/ks.cfg
label linux-mini
kernel vmlinuz
append initrd=initrd.img devfs=nomount method=ftp://192.168.75.111/centos ks=ftp://192.168.80.40/pub/ks-mini.cfg
ls /var/ftp/pub/
ks.cfg ks-mini.cfg