架构师的成长之路初片~PXE自动批量装机
什么是自动批量装机:自动批量装机是:DHCP、TFTP、FTP、PXE三大服务以及一个无人值守机的互相配合,让从未装过系统的机器,自动获取ip到自动装系统到完成的一个新系统安装的过程。(新机开即即可自动安装,无需人工手动安装)
如图下所示:
环境准备:两台centos7的服务器,关闭selinux,firewalld
1)安装DHCP服务
包名:dhcpd-server
主配置文件:/etc/dhcp/dhcpd.conf
2)修改主配置文件信息
在文件内读入文件:/usr/share/doc/dhcp*/dhcpd.conf.example
r /usr/share/doc/dhcp*/dhcpd.conf.example
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; //分配的DNS option routers 192.168.4.254; //分配的网关地址 default-lease-time 600; //默认开机连接的时间 max-lease-time 7200; //最大连接时间
next-server 192.168.4.7; //下一跳的服务地址
filename "pxelinux.0"; //指明网卡引导文件名称
3)保存后退出
################################################################################
pxelinux.0 文件解释
Pxelinux.0(网卡引导文件==[网络装机说明书])
二进制文件,安装一个软件可以获得该文件(syslinux)
################################################################################
4)重启dhcp服务
systemctl restart dhcpd
2:TFTP服务
tftp简单的文件传输协议:默认端口:69
默认共享的主目录:/var/lib/tftpboot
任务:负责给客户端提供引导文件
1) 装包
[root@pc7 dhcp]# yum -y install tftp-server
Yum provides */pxelinux.0 //查询那个包产生该文件
部署pxelinux.0文件
Yum provides */pxelinux.0 //查询那个包产生该文件
Yum -y install syslinux //安装syslinux包
Rpm -ql syslinux | grep pxelinux.0 //查询软件包清单
Cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ //复制
Ls /var/lib/tftpbot/ //查看确定
1)在/var/lib/tftpboot/ 目录下 创建一个叫pxelinux.0
2)将磁盘内的菜单文件 isolinux.cfg 复制并且更名为 /tftpboot/pxelinux.cfg/default
2.1)修改/tftpboot/pxelinux.cfg/default 文件内的内容
10、11:图片文件,开机菜单选择名称 删除65行后面的所有内容。
留下
62行:界面显示的内容
3)
将光盘内的文(4个)件复制到tftpboot下
initrd.img(驱动程序) vesamenu.c32(图形模块) splash.png(背景图片) vmlinuz(启动内核)
4)查看tftpboot下的文件总数(6个)
initrding pxelinux.cfg(目录内有个菜单default文件) vesamenu.c32 pxelinux.0 splash.png vmlinuz
安装思路:
DHCP服务器ip-->next-server-->filename-->pxelinux.0-->ftfp服务:pxelinux.0-->(pxelinux.0)/var/lib/tftpboot/pxelinux.cfg/default(默认菜单(系统)文件)
###########################################################
在读取pxelinux.0文件中,实际上读取的是/var/lib/tftpboot/pxelinux.cfg文件的内容。而pxelinux.cfg就是在开机自启时选择的一个菜单栏。(此文件实际在光盘内的/isolinux/isolinux.cfg内)所以我们得把光盘内的文件复制到引导启动的文件中。/var/lib/tftpboot/pxelinux.cfg中
初步测试(KVM虚拟机)
初步测试(VMware)
网络装机内存大小建议2个G,在编辑处选择
因为vmware自带dhcp功能,所有得关掉
见到下图,则表示初步测试成功。
部署FTP服务
1)装包
2)在/var/ftp/centos 创建目录
3)把光驱挂载到/var/ftp/centos 目录下
4)重启服务
5)测试:curl ftp://192.168.4.7/centos/
实现无人值守安装
实现无人值守安装,生成答应文件。
*安装system-config-kickstart图形的工具
1)装包:Yum -y install system-config-kickstart
2)运行:system-config-kickstart
3)在运行图形工具时弹出的配置程序中,我们直接看(软件包选择),如果不能选择,则修改一下本地服务器的yum文件内的标签修改为:
修改完后,重新启动程序。
]# system-config-kickstart
如下图安装
其他的默认不动,配置完成后,点击左上角的保存。
保存到/root。
在然后关掉,在虚拟中查看ls即可
3)利用FTP服务共享应答文件
将ks.cfg文件复制到FTP下
[root@pc7 ~]# cp ks.cfg /var/ftp/
[root@pc7 ~]# ls /var/ftp/
centos ks.cfg other pub
用curl测试:[root@pc7 ~]# curl ftp://192.168.4.7/ks.cfg
1)修改菜单文件(将ftp文件的路径写到驱动文件中)
Vim /var/lib/tftpboot/pxelinux.cfg/default
重启所有的服务:dhcpd vsftpd tftp
总结:
自动装机一共分为三个服务1个插件与一个引导文件pxelinux.0
dhcp-->clinent-->tftp-->clinent-->ftp-->clinent
重要操作步骤有:
配置dhcpd.conf文件的内容
配置tftpboot/目录下的文件以及pxelinux.0目录下的菜单文件default
#注意文件的个数以及文件内容
/dhcpd.conf 文件内容 |
subnet 192.168.4.0 netmask 255.255.255.0 { |
/default内容 |
行尾 label linux |
注意.repo文件的标签,否则运行system-config-kickstart会出现问题 |
[development] |