PXE自动装机
dhcp配置
yum -y install dhcpd
vim /etc/dhcp/dhcpd.conf
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
# A slightly different configuration for an internal subnet.
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.100 192.168.4.200;
option domain-name-servers 192.168.4.7;
option routers 192.168.4.254;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.4.7;#下一个服务器的IP地址,一般将PXE安装其他服务一台主机,所以还是指定本机
filename "pxelinux.0";
#指明网卡引导文件(网络装机说明书 二进制文件)名称,安装软件默认获得名称为pexlinux.0
}
systemctl restart dhcpd
部署pexlinux.0文件
[root@svr7 ~]# yum provides */pxelinux.0
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
iso/filelists_db | 6.9 MB 00:00:00
myrpm/filelists_db | 2.2 kB 00:00:00
syslinux-4.05-13.el7.x86_64 : Simple kernel loader which boots from a FAT filesystem
源 :iso
匹配来源:
文件名 :/usr/share/syslinux/pxelinux.0
syslinux-tftpboot-4.05-13.el7.x86_64 : SYSLINUX modules in /var/lib/tftpboot, available for network
: booting
源 :iso
匹配来源:
文件名 :/var/lib/tftpboot/pxelinux.0
#一般装上面syslinux,然后复制syslinux0到对应目录/var/lib/tftpboot/pxelinux.0,为什么不装直接在/var/lib/tftpboot/pxelinux.0下的tftpboot包呢,因为它会在这个目录下产生除了syslinux.0外的大量其他文件
[root@svr7 ~]# yum -y install syslinux
[root@svr7 ~]# rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@svr7 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@svr7 ~]# ls /var/lib/tftpboot/
pxelinux.0
tftp 传输众多的引导文件
tftp默认端口 69
默认共享主目录 ;/var/lib/tftpboot
yum -y install tftp-server
systemctl restart tftp
思路:
1. dhcp—>IP地址、next-server、filename pxelinux.0
2. tftp—> pxelinux.0
3. pxelinux.0—>读取菜单文件/var/lib/tftpboot/pxelinux.cfg/default
(菜单模板如 装机光盘挂载后iso下linux.cfg)
4. default—>图形模块、背景图片、内核、驱动程序
部署菜单文件
拷贝iso镜像下的菜单文件然后修改
isolinux.cfg
部署图形的模块(vesamenu.c32)和背景图片(splash.png)
驱动内核(vmlinuz)和驱动程序(initrd.img)
修改菜单文件内容
[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 NSD2007 PXE Server #菜单界面的标题
………
61 label linux
62 menu label ^Install CentOS 7 #菜单显示内容
63 menu default #读秒结束后默认选择
64 kernel vmlinuz #加载运行内核
65 append initrd=initrd.img #加载运行驱动程序
构建FTP服务,共享光盘的所有内容
1.安装软件包
[root@svr7 /]# yum -y install vsftpd
[root@svr7 /]# systemctl restart vsftpd
2.挂载光驱设备
[root@svr7 /]# mkdir /var/ftp/centos
[root@svr7 /]# mount /dev/cdrom /var/ftp/centos
mount: /dev/sr0 写保护,将以只读方式挂载
[root@svr7 /]# ls /var/ftp/centos
[root@svr7 /]# curl ftp://192.168.4.7/centos/ #测试
实现无人值守安装,生成应答文件
利用system-config-kickstart 图形工具
[root@svr7 /]# yum -y install system-config-kickstart
[root@svr7 /]# system-config-kickstart
需要本地yum支持来显示软件包选择(7系列bug)
system-config-kickstart程序需要Yum仓库的支持才能显示软件包的选择,必须要求Yum仓库的标识为**[development]**
1.配置ks.cfg 保存到/root/ks.cfg
2.利用FTP服务共享应答文件
[root@svr7 /]# cp /root/ks.cfg /var/ftp/
[root@svr7 /]# ls /var/ftp/
centos ks.cfg pub
修改菜单文件,指定应答文件获取方式
[root@svr7 /]# vim /var/lib/tftpboot/pxelinux.cfg/default
……..此处省略一万字
label linux
menu label ^Install CentOS 7
menu default
kernel vmlinuz
append initrd=initrd.img ks=ftp://192.168.4.7/ks.cfg