PXE实现kickstart无人值守安装
PXE(Preboot execute environment)是一种能够让计算机通过网络启动的引导方式,只要网卡支持 PXE 协议即可使用。Kickstart 是一种无人值守的安装方式,工作原理就是预先把原本需要运维人员手工填写的参数保存成一个 ks.cfg文件,当安装过程中出现需要填写参数时则自动匹配 Kickstart 生成的文件,所以只要 Kickstart 文件包含了安装过程中所有需要人工填写的参数,那么运维人员就完全不需要干预,等待安装完毕即可。
简单文本传输协议 TFTP(Trivial File Transfer Protocol)是一种基于 UDP 协议的传输协议,其与前面学习的 vsftpd服务程序的 FTP 协议有很大不同,TFTP 协议不具备 FTP 的许多功能(例如列出目录,密码认证等等),但 TFTP 协议配置非常简单,而且资源消耗更低,非常适合传输不敏感的文件。
环境介绍:
系统版本:红帽 RHEL7 IP: 192.168.4.5 DNS服务器:192.168.4.254
一 搭建DHCP 服务(分配IP地址、定位引导程序)
1 安装dhcp软件包
[[email protected] ~]# yum -y install dhcp
2 修改配置文件:
[[email protected] ~]# vim /etc/dhcp/
subnet 192.168.4.0 netmask 255.255.255.0 { #分配的网段
range 192.168.4.100 192.168.4.200; #自动分配IP地址的范围
option domain-name-servers 192.168.4.5; #本机为DNS服务器
option routers 192.168.4.254; #网关地址
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.4.5; #指定下一个服务器地址
filename "pxelinux.0"; #指定网卡引导文件名称
}
3 重启服务并设置开机自启:
[[email protected] ~]# systemctl restart dhcpd
[[email protected] ~]# systemctl enable dhcpd
二 搭建TFTP服务(提供引导程序下载)
1 安装软件包tftp-server:
[[email protected] ~]# yum -y install tftp-server
2 重起tftp服务:
[[email protected] ~]# systemctl restart tftp
三 搭建HTTP服务:
1 安装软件包阿帕奇:
[[email protected] ~]# yum -y install httpd
2 将光盘内容放入DocumentRoot(/var/www/html):
[[email protected] ~]# mkdir /var/www/html/rhel7
[[email protected] ~]# mount /dev/cdrom /var/www/html/rhel7
[[email protected] ~]# ls /var/www/html/rhel7
addons GPL media.repo RPM-GPG-KEY-redhat-release
EFI images Packages TRANS.TBL
EULA isolinux repodata
extra_files.json LiveOS RPM-GPG-KEY-redhat-beta
[[email protected] ~]# systemctl restart httpd
[[email protected] ~]# firefox 192.168.4.7/rhel7 #查看ISO镜像文件
四 在tftp上部署pxelinux.0 以及各种启动相关的文件(位置: /var/lib/tftpboot/)
1.部署pxelinux.0
[[email protected] ~]# yum provides */pxelinux.0 #查询仓库中那个软件包会产生这个文件
源 :development
匹配来源:
文件名 :/usr/share/syslinux/pxelinux.0
syslinux-4.05-13.el7.x86_64 : Simple kernel loader which boots from a FAT
[[email protected] ~]# yum -y install syslinux #下载syslinux软件包
[[email protected] ~]# rpm -ql syslinux | grep pxelinux.0 #查询pxelinux.0的安装清单
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #将引导文件放TFTP目录下
[[email protected] ~]# ls /var/lib/tftpboot/
pxelinux.0
2 部署相关启动文件:
[[email protected] ~]# cd /var/www/html/rhel7
[[email protected] rhel7]# ls
addons GPL media.repo RPM-GPG-KEY-redhat-release
EFI images Packages TRANS.TBL
EULA isolinux repodata
extra_files.json LiveOS RPM-GPG-KEY-redhat-beta
[[email protected] rhel7]# cd isolinux/
[[email protected] isolinux]# ls
boot.cat grub.conf isolinux.bin memtest TRANS.TBL vesamenu.c32
boot.msg initrd.img isolinux.cfg splash.png upgrade.img vmlinuz
[[email protected] isolinux]# cp vesamenu.c32 vmlinuz splash.png initrd.img /var/lib/tftpboot/
[[email protected] isolinux]# ls /var/lib/tftpboot/
initrd.img pxelinux.0 splash.png vesamenu.c32 vmlinuz
# 图形的模块:vesamenu.c32 背景图片:splash.png
# 启动内核:vmlinuz 驱动程序:initrd.img 引导文件:pxelinux.0
3 部署菜单文件:
[[email protected] isolinux]# mkdir /var/lib/tftpboot/pxelinux.cfg
[[email protected] isolinux]# cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #将菜单文件放入
[[email protected] isolinux]# chmod u+w /var/lib/tftpboot/pxelinux.cfg/default #为菜单文件设置写权限
[[email protected] isolinux]# vim /var/lib/tftpboot/pxelinux.cfg/default #配置菜单文件
#开启行号
1 default vesamenu.c32 #默认加载图形的模块
2 timeout 600 #读秒时间 1/10
10 menu background splash.png #指定背景图片
11 menu PXE Server ! #菜单显示的标题(自定义)
61 label linux
62 menu label Install RHEL7 #选项内容
63 menu default #读秒结束后默认选择
64 kernel vmlinuz #加载内核
65 append initrd=initrd.img #加载驱动
五 实现无人值守安装,生成应答文件
安装一个图形的工具(system-config-kickstart)进行生成
[[email protected] isolinux]# cd
[[email protected] ~]# yum -y install system-config-kickstart
[[email protected] ~]# system-config-kickstart # 运行图形工具
1 根据需要确认默认语言、时区,设置根口令、磁盘分区规划等基本信息
2 在安装方法部分,选择“执行新安装”,并正确设置HTTP安装源的访问地址信息
3 在分区信息部分,选择清除主引导记录、删除所有现存分区、初始化磁盘标签,并手动添加/boot 200MB、SWAP分区 2000MB、/分区 所有剩余空间
4 在网络配置部分,确认已添加第一块网卡eth0,设为DHCP自动获取
5 在防火墙配置部分,禁用SELinux、禁用防火墙
6 在软件包选择部分,根据客户机的实际需要定制。比如若要使用图形桌面环境,建议将GNOME相关的包勾选上,系统选择基本。
7 在安装后脚本部分,添加经验证的可执行语句,可自由选择需要添加的功能。
8 设置完成后将此应答文件ks.cfg 保存到/root目录下。
六 共享ks应答文件:
1 将ks.cdg 文件复制到Documentroot 下
[[email protected] ~]# cp /root/ks.cfg /var/www/html/
[[email protected] ~]# ls /var/www/html/
ks.cfg rhel7
[[email protected] ~]# firefox 192.168.4.5/ks.cfg #测试
2 通过菜单文件进行指定
[[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
menu label Install RHEL7
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.4.5/ks.cfg
至此配置工作全部完成。