一. 环境准备
1.通过 HTTP 方式发布CentOS7软件源
[root@room9pc13 ~]# yum -y install httpd
[root@room9pc13 ~]# systemctl restart httpd
[root@room9pc13 ~]# systemctl enable httpd
[root@room9pc13 ~]# mkdir /var/www/html/dvd //创建挂载点
[root@room9pc13 ~]# vim /etc/fstab
/ISO/CentOS-1804.iso /var/www/html/dvd iso9660 loop,ro 0 0
[root@room9pc13 ~]# mount -a
[root@room9pc13 ~]# ls /var/www/html/dvd/
[root@room9pc13 ~]# firefox http://192.168.4.254/dvd/
2.部署DHCP服务
[root@svr7 /]# yum -y install dhcp
[root@svr7 /]# vim /etc/dhcp/dhcpd.conf
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.7; //分配DNS地址
option routers 192.168.4.254; //网关地址
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.4.7; //指定下一个服务器tftp服务器地址
filename "pxelinux.0"; //指定网卡引导文件名称
}
[root@svr7 ~]# systemctl restart dhcpd
[root@svr7 ~]# systemctl enable dhcpd
[root@svr7 ~]# netstat -anptu | grep dhcpd
二. 配置PXE引导
1.快速构建TFTP服务器
[root@svr7 /]# yum -y install tftp-server
[root@svr7 ~]# systemctl restart tftp
[root@svr7 ~]# systemctl enable tftp
2.部署pxelinux.0文件
[root@svr7 ~]#yum provides */pxelinux.0 //查询哪个软件包产生该文件
[root@svr7 ~]# yum -y install syslinux
[root@svr7 ~]# rpm -ql syslinux | grep pxelinux.0
[root@svr7 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@svr7 ~]# ls /var/lib/tftpboot/
3.部署启动内核与驱动程序,部署到tftp目录
[root@svr7 ~]# cd /var/lib/tftpboot
[root@svr7 tftpboot]# wget http://192.168.4.254/dvd/isolinux/vmlinuz //下载启动内核
[root@svr7 tftpboot]# wget http://192.168.4.254/dvd/isolinux/initrd.img //下载驱动程序
[root@svr7 tftpboot]# ls /var/lib/tftpboot/ //确认部署结果
4.部署启动菜单文件
[root@svr7 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@svr7 ~]# cd /var/lib/tftpboot/
[root@svr7 tftpboot]# wget http://192.168.4.254/dvd/isolinux/vesamenu.c32 //提供图形支持
[root@svr7 tftpboot]# wget http://192.168.4.254/dvd/isolinux/splash.png //准备背景图片
[root@svr7 tftpboot]# wget -O pxelinux.cfg/default http://192.168.4.254/dvd/isolinux/isolinux.cfg //建立菜单配置
[root@svr7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
末行模式 开启行号 :set nu
1 default vesamenu.c32 #默认加载图形的模块
2 timeout 600 #读秒时间 1/10秒
10 menu background splash.png #背景图片
11 menu title PXE Installation Server #标题
61 label linux
62 menu label ^Install CentOS 7 #菜单的显示内容
63 menu default #读秒结束后默认选择
64 kernel vmlinuz #加载启动内核
65 append initrd=initrd.img #加载驱动程序
5.测试验证
[root@svr7 ~]# systemctl restart dhcpd
[root@svr7 ~]# systemctl restart tftp
三.PXE+kickstart自动装机
1.安装可以生成应答文件的软件包
[root@svr7 ~]# yum -y install system-config-kickstart
2.点击 “软件包选择(Package Selection)” 查看是否可以进行选择需要Yum仓库的支持:指向光盘的内容仓库,标识必须为[development]
[root@svr7 ~]# vim /etc/yum.repos.d/dvd.repo
[development]
name = CentOS Linux 7
baseurl = http://192.168.4.254/dvd
enabled=1
gpgcheck = 0
3.运行system-config-kickstart工具,创建应答文件,在支持图形程序的环境运行system-config-kickstart,即可打开该配置工具
[root@svr7 ~]# LANG=en system-config-kickstart
点击 “软件包选择(Package Selection)” 查看是否可以进行选择
4.应答文件微调整
[root@svr7 ~]# vim /root/ks.cfg
install //安装基本信息设置
xconfig --startxonboot
keyboard --vckeymap=cn --xlayouts='cn'
rootpw --iscrypted $1$.48kBNVL$e.Ym0L/RzkJonYwbg9Brq1
timezone Asia/Shanghai
url --url="http://192.168.4.254/dvd" //安装源设置
lang zh_CN
firewall --disabled
#repo --name="Server-HighAvailability" --baseurl=file:///run/install/repo/addons/HighAvailability
#repo --name="Server-ResilientStorage" --baseurl=file:///run/install/repo/addons/ResilientStorage
#autopart --type=lvm //分区设置
zerombr
clearpart --all --initlabel
part /boot --fstype="xfs" --size=200
part swap --fstype="swap" --size=2000
part / --fstype="xfs" --grow --size=1
.. ..
%post --interpreter=/bin/bash //安装后脚本设置
echo '[CentOS7]
name = CentOS Linux 7
baseurl = http://192.168.4.254/dvd
gpgcheck = 0' > /etc/yum.repos.d/CentOS7.repo
%end
%packages //软件包设置
@^graphical-server-environment
@base
@core
@desktop-debugging
@development
.. ..
initial-setup
initial-setup-gui
-NetworkManager
-NetworkManager-team
.. ..
%end
5.部署应答文件
[root@room9pc13 ~]# scp root@192.168.4.7:/root/ks.cfg /var/www/html/
[root@room9pc13 ~]# ls -lh /var/www/html/ks.cfg
[root@pc207 ~]# wget http://192.168.4.254/ks.cfg
[root@svr7 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
.. ..
label linux
menu label ^Install CentOS7 Linux 7
kernel CentOS7/vmlinuz
append initrd=CentOS7/initrd.img ks=http://192.168.4.254/ks.cfg
.. ..