使用PXE+Kickstart部署无人值守安装

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:689

[color=rgb(61, 68, 80)]章节概述:[color=rgb(61, 68, 80)]本章节将教会您通过PXE+DHCP+TFTP+VSftpd+Kickstart服务程序搭建出无人值守安装系统,从而批量部署客户机系统。[color=rgb(61, 68, 80)]这种系统能够实现自动化运维、避免了重复性劳动,帮助提升工作效率,对于运维人员真的是太有帮助了。[color=rgb(61, 68, 80)]无人值守系统[color=rgb(61, 68, 80)]坦白来讲,使用光盘或U盘这种传统物理方式安装系统效率真的很低,尤其当需要批量部署系统时更是明显。[indent][size=14px]一般的机房设备都会在数百台以上,即便购买了数百张系统光盘,那您也必需对每台设备初始化安装向导,免不了会有选错的参数,更何况如此多的设备没有几天肯定装不完吧。[/indent][color=rgb(61, 68, 80)]其实我们可以用PXE+DHCP+TFTP+VSftpd+Kickstart部署出无人值守安装系统,这种系统能够实现自动化运维、避免了重复性劳动,帮助提升工作效率,对于DHCP已经是咱们学习过的了,所以这里就不再多说,小伙伴们如果忘记了可以翻去前面章节复习下。[color=rgb(61, 68, 80)][img=609,162]http://www.linuxprobe.com/wp-content/uploads/2015/10/%E6%97%A0%E4%BA%BA%E5%80%BC%E5%AE%88%E5%AE%89%E8%A3%85%E6%B5%81%E7%A8%8B1.png[/img][color=rgb(61, 68, 80)]PXE(Preboot execute environment)是一种能够让计算机通过网络启动的引导方式,只要网卡支持PXE协议即可使用。[color=rgb(61, 68, 80)]Kickstart是一种无人值守的安装方式,工作原理就是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中出现需要填写参数时则自动匹配Kickstart生成的文件,所以只要Kickstart文件包含了安装过程中所有需要人工填写的参数,那么运维人员就完全不需要干预,等待安装完毕即可。[color=rgb(61, 68, 80)]简单文件传输协议TFTP(Trivial File Transfer Protocol)是一种基于UDP协议的传输协议,其与前面学习的vsftpd服务程序的FTP协议有很大不同,TFTP协议不具备FTP的许多功能(例如列出目录,密码认证等等),但TFTP协议配置非常简单,而且资源消耗更低,非常适合传输不敏感的文件。
出现问题?大胆提问![indent][size=14px]因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~[size=14px]您可以将报错的屏幕截图与自己的操作过程帖到“[color=rgb(210, 50, 45)]会员互助问答区”,一般问题都会在24小时内被解决。[/indent][color=rgb(61, 68, 80)][color=rgb(210, 50, 45)][img]http://www.linuxprobe.com/imgs/questions.jpg[/img]部署相关服务程序[color=rgb(61, 68, 80)]咱们需要依次部署DHCP、TFTP、SYSLinux、VSFtpd与Kickstart服务,在这之前请先准备两台虚拟机并配置好网卡参数:[table=98%]
主机名称操作系统IP地址
无人值守系统红帽RHEL7操作系统192.168.10.10
客户端未安装操作系统-

[color=rgb(61, 68, 80)]并确保您的虚拟机软件自带DHCP服务功能已经关闭:
[img=1296,182]http://www.linuxprobe.com/wp-content/uploads/2015/07/%E9%80%89%E6%8B%A9%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%AF%BC%E8%88%AA%E6%9D%A1%E4%B8%8A%E7%9A%84%E7%BD%91%E7%BB%9C%E7%BC%96%E8%BE%91%E5%99%A8.png[/img]
[img=598,533]http://www.linuxprobe.com/wp-content/uploads/2015/07/%E4%B8%8D%E4%BD%BF%E7%94%A8%E8%99%9A%E6%8B%9F%E6%9C%BA%E7%9A%84DHCP%E5%8A%9F%E8%83%BD.jpg[/img][color=rgb(0, 128, 0)]配置DHCP服务程序[color=rgb(61, 68, 80)]安装dhcpd服务程序:[root@linuxprobe ~]# yum install dhcpLoaded plugins: langpacks, product-id, subscription-manager………………省略部分安装过程………………Installing: dhcp x86_64 12:4.2.5-27.el7 rhel7 506 k………………省略部分安装过程………………Complete![color=rgb(61, 68, 80)]配置dhcpd服务程序(将下面的内容复制进去即可,具体参数含义请回顾dhcpd服务章节):[root@linuxprobe ~]# vim /etc/dhcp/dhcpd.confallow booting;allow bootp;ddns-update-style interim;ignore client-updates;subnet 192.168.10.0 netmask 255.255.255.0 { option subnet-mask 255.255.255.0; option domain-name-servers 192.168.10.10; range dynamic-bootp 192.168.10.100 192.168.10.200; default-lease-time 21600; max-lease-time 43200; next-server 192.168.10.10; filename "pxelinux.0";}[color=rgb(61, 68, 80)]重启dhcpd服务并添加到开机启动项:[font=Monaco,][size=13px][root@linuxprobe ~][color=rgb(64, 96, 64)][i]# systemctl restart dhcpd
[root@linuxprobe ~][color=rgb(64, 96, 64)][i]# systemctl enable dhcpd
[color=rgb(32, 96, 160)]ln -s [color=rgb(192, 48, 48)]'/usr/lib/systemd/system/dhcpd.service' [color=rgb(192, 48, 48)]'/etc/systemd/system/multi-user.target.wants/dhcpd.service'

[color=rgb(61, 68, 80)]添加防火墙对dhcpd服务允许的规则:[root@linuxprobe ~]# firewall-cmd --permanent --add-service=dhcpsuccess[root@linuxprobe ~]# firewall-cmd --reload success配置TFTP服务程序[color=rgb(61, 68, 80)]
安装tftp服务程序:
[root@linuxprobe ~]# yum install tftp-serverLoaded plugins: langpacks, product-id, subscription-manager………………省略部分安装过程………………Installing: tftp-server x86_64 5.2-11.el7 rhel7 44 kInstalling for dependencies: xinetd x86_64 2:2.3.15-12.el7 rhel7 128 k………………省略部分安装过程………………Complete!分析vsftpd服务程序时发现,FTP服务器为了随时能够回应客户端的请求必需运行一个长期驻扎在系统中的守护进程,但这样也意味着会有一定的资源浪费,网络守护进程服务程序xinetd便是为了解决资源浪费问题而设计的,因为xinetd服务程序会同时监听多个系统端口,依据客户端请求的端口再转发给指定的服务程序,而tftp便是由xinetd服务程序来管理的。
编辑xinetd配置文件,启动TFTP服务程序:[root@linuxprobe ~.d]# vim /etc/xinetd.d/tftp//将disable的值修改为no。service tftp{ socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /var/lib/tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4重启xinetd服务并添加到开机启动项中:[root@linuxprobe xinetd.d]# systemctl restart xinetd[root@linuxprobe xinetd.d]# systemctl enable xinetd添加防火墙对tftp服务允许的规则:[root@linuxprobe ~]# firewall-cmd --permanent --add-port=69/udpsuccess[root@linuxprobe ~]# firewall-cmd --reload success

配置SYSLinux服务程序[color=rgb(61, 68, 80)]syslinux是用于提供引导加载的服务程序,目的是简化安装Linux系统的时间,安装syslinux服务程序:[root@linuxprobe ~]# yum install syslinuxLoaded plugins: langpacks, product-id, subscription-manager………………省略部分安装过程………………Installing: syslinux x86_64 4.05-8.el7 rhel7 1.0 M………………省略部分安装过程………………Complete![color=rgb(61, 68, 80)]将引导相关文件复制到tftp目录以供客户端下载(请确保光盘镜像已挂载到/media/cdrom):[root@linuxprobe ~]# cd /var/lib/tftpboot[root@linuxprobe tftpboot]# cp /usr/share/syslinux/pxelinux.0 .[root@linuxprobe tftpboot]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} .[root@linuxprobe tftpboot]# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .[color=rgb(61, 68, 80)]将引导模板文件复制tftp目录:[root@linuxprobe tftpboot]# mkdir pxelinux.cfg[root@linuxprobe tftpboot]# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default[color=rgb(61, 68, 80)]编辑引导模板文件:[font=Monaco,][size=13px][root@linuxprobe tftpboot][color=rgb(64, 96, 64)][i]# vim pxelinux.cfg/default
//将第[color=rgb(0, 128, 160)]1行修改为:
default linux
//将第[color=rgb(0, 128, 160)]64行修改为:
append [color=rgb(0, 128, 128)]initrd=initrd.img inst.stage2=ftp://192.168.10.10 [color=rgb(0, 128, 128)]ks=ftp://192.168.10.10/pub/ks.cfg quiet
//将第[color=rgb(0, 128, 160)]70行修改为:
append [color=rgb(0, 128, 128)]initrd=initrd.img inst.stage2=ftp://192.168.10.10 rd.live.check [color=rgb(0, 128, 128)]ks=ftp://192.168.10.10/pub/ks.cfg quiet

配置VSFtpd服务程序[color=rgb(61, 68, 80)]安装vsftpd服务程序:[root@linuxprobe ~]# yum install vsftpdLoaded plugins: langpacks, product-id, subscription-manager………………省略部分安装过程………………Installing: vsftpd x86_64 3.0.2-9.el7 rhel7 166 k………………省略部分安装过程………………Complete![color=rgb(61, 68, 80)]重启vsftpd服务程序并添加到开机启动项:[font=Monaco,][size=13px][root@linuxprobe ~][color=rgb(64, 96, 64)][i]# systemctl restart vsftpd
[root@linuxprobe ~][color=rgb(64, 96, 64)][i]# systemctl enable vsftpd
[color=rgb(32, 96, 160)]ln -s [color=rgb(192, 48, 48)]'/usr/lib/systemd/system/vsftpd.service' [color=rgb(192, 48, 48)]'/etc/systemd/system/multi-user.target.wants/vsftpd.service'

[color=rgb(61, 68, 80)]添加防火墙对vsftpd服务允许的规则:[root@linuxprobe ~]# firewall-cmd --permanent --add-service=ftpsuccess[root@linuxprobe ~]# firewall-cmd --reload success[color=rgb(61, 68, 80)]将光盘镜像文件的内容复制到FTP目录中(请先确保您的光盘已经挂载到/media/cdrom目录):[root@linuxprobe ~]# cp -r /media/cdrom/* /var/ftp[color=rgb(61, 68, 80)]设置SELinux对于FTP协议的允许策略:[root@linuxprobe ~]# setsebool -P ftpd_connect_all_unreserved=on创建KickStart应答文件[color=rgb(61, 68, 80)]复制一份应答文件模板并给于权限:[root@linuxprobe ~]# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg[root@linuxprobe ~]# chmod +r /var/ftp/pub/ks.cfg[color=rgb(61, 68, 80)]编辑模板文件:[root@linuxprobe ~]# vim /var/ftp/pub/ks.cfg //将第6行的cdrom修改为: url --url=ftp://192.168.10.10//将第21行的时区修改为: timezone Asia/Shanghai --isUtc//将第28行修改为: clearpart --all --initlabel[color=rgb(61, 68, 80)]出现问题?大胆提问![indent][size=14px]因读者们硬件不同或操作错误都可能导致实验配置出错,请耐心再仔细看看操作步骤吧,不要气馁~[size=14px]您可以将报错的屏幕截图与自己的操作过程帖到“[color=rgb(210, 50, 45)]会员互助问答区”,一般问题都会在24小时内被解决。[/indent][color=rgb(61, 68, 80)][color=rgb(210, 50, 45)][img]http://www.linuxprobe.com/imgs/questions.jpg[/img]自动部署客户机[color=rgb(61, 68, 80)]当我们部署好了无人值守系统后,就可以新增一台虚拟机来验证啦:[color=rgb(61, 68, 80)]请您按照下面的幻灯片逐步操作,可点击图片两侧箭头或下方小圆点“○”切换步骤。
[color=rgb(61, 68, 80)][list]
[*][img=503,482]http://www.linuxprobe.com/wp-content/uploads/2015/10/%E7%AC%AC1%E6%AD%A5%EF%BC%9A%E8%BF%90%E8%A1%8C%E6%96%B0%E5%BB%BA%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%90%91%E5%AF%BC.png[/img][color=white]第1步:运行新建虚拟机向导。

[*][img=503,482]http://www.linuxprobe.com/wp-content/uploads/2015/10/%E7%AC%AC2%E6%AD%A5%EF%BC%9A%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E7%A9%BA%E7%99%BD%E7%A1%AC%E7%9B%98.png[/img][color=white]第2步:创建一个空白硬盘。

[*][img=503,482]http://www.linuxprobe.com/wp-content/uploads/2015/10/%E7%AC%AC3%E6%AD%A5%EF%BC%9A%E9%80%89%E6%8B%A9%E8%99%9A%E6%8B%9F%E6%9C%BA%E7%B3%BB%E7%BB%9F.png[/img][color=white]第3步:选择虚拟机系统。

[*][img=503,482]http://www.linuxprobe.com/wp-content/uploads/2015/10/%E7%AC%AC4%E6%AD%A5%EF%BC%9A%E5%A1%AB%E5%86%99%E7%B3%BB%E7%BB%9F%E5%90%8D%E7%A7%B0%E4%B8%8E%E8%99%9A%E6%8B%9F%E6%9C%BA%E4%BF%9D%E5%AD%98%E8%B7%AF%E5%BE%84.png[/img][color=white]第4步:填写系统名称与虚拟机保存路径。

[*][img=503,482]http://www.linuxprobe.com/wp-content/uploads/2015/10/%E7%AC%AC5%E6%AD%A5%EF%BC%9A%E5%88%9B%E5%BB%BA%E7%A1%AC%E7%9B%98%E8%AE%BE%E5%A4%87%EF%BC%88%E9%BB%98%E8%AE%A4%E5%A4%A7%E5%B0%8F%E5%8D%B3%E5%8F%AF%EF%BC%89.png[/img][color=white]第5步:创建硬盘设备(默认大小即可)。

[*][img=503,482]http://www.linuxprobe.com/wp-content/uploads/2015/10/%E7%AC%AC6%E6%AD%A5%EF%BC%9A%E9%80%89%E6%8B%A9%E8%87%AA%E5%AE%9A%E4%B9%89%E7%A1%AC%E4%BB%B6.png[/img][color=white]第6步:选择自定义硬件,将网卡的类型修改为与无人值守系统一致(此步骤省略)。

[list=1]
[*][color=rgb(210, 50, 45)]]1
[*][color=rgb(210, 50, 45)]]2
[*][color=rgb(210, 50, 45)]]3
[*][color=rgb(210, 50, 45)]]4
[*][color=rgb(210, 50, 45)]]5
[*][color=rgb(210, 50, 45)]]6
[list]
[*][color=rgb(210, 50, 45)]< [*][color=rgb(210, 50, 45)]>

[color=rgb(61, 68, 80)]当开启客户端虚拟机电源后,会自动化的进行部署系统:[color=rgb(61, 68, 80)][color=rgb(210, 50, 45)][img=836,571]http://www.linuxprobe.com/wp-content/uploads/2015/10/%E8%87%AA%E5%8A%A8%E5%8C%96%E5%AE%89%E8%A3%85%E5%8A%A0%E8%BD%BD%E4%B8%AD.png[/img][color=rgb(61, 68, 80)]耐心的等待安装中:[color=rgb(61, 68, 80)][img=1280,768]http://www.linuxprobe.com/wp-content/uploads/2015/10/%E5%AE%89%E8%A3%85%E8%BF%87%E7%A8%8B%E4%B8%AD.png[/img][color=rgb(61, 68, 80)]大约20分钟后系统已经顺利的安装完毕:[color=rgb(61, 68, 80)][img=1280,768]http://www.linuxprobe.com/wp-content/uploads/2015/10/%E5%AE%89%E8%A3%85%E5%AE%8C%E6%AF%95.png[/img]
原文来自:[font=Microsoft Yahei, Helvetica, Arial, sans-serif]http://www.linuxprobe.com/chapter-19/

本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】