實驗環境
隨著某公司業務不斷發展,伺服器主機的數目也迅速下降,對於功能變更或新採購的伺服器,須要重新安裝CentOS7作業系統,為了提升伺服器裝置效率,要求基於PXE網路實現全手動無人值守批量安裝。
需求描述
>伺服器的IP位址為“192.168.184.101”,所在公網為“192.168.184.0/24”。
>建置PXE網路裝置伺服器,為新採購的10台伺服器裸機安裝CentOS作業系統。
>新裝的系統為最小化安裝,預設語言為「中文」。
>為新裝的系統手動設定好YUM庫房,root密碼設定為「abc.123」。
11.3.1建置PXE遠端安裝伺服器
本例的PXE遠端安裝伺服器整合了CentOS7安裝來源,TFTP服務,DHCP服務,才能向客戶機裸機發送PXE引導程式、Linux核心、啟動選單等數據,以及提供安裝檔。
1.打算CentOS7安裝來源
CentOS7的網路安裝來源通常透過HTTP或FTP合約發布,另外也支援NFS(NetworkFileSystem,網路文件系統)合同,關於NFS的配置請參閱其他資料,這兒不再贅言。
例如,若採用FTP合約發布安裝來源,可以在伺服器上佈署一個YUM軟體庫房。
<code class="hljs">[root@node01 centos7]# mount /dev/cdrom /mnt/ [root@node01 ~]# mkdir /var/ftp/centos7 [root@node01 ~]# cp -rf /mnt/* /var/ftp/centos7/ [root@node01 ~]# systemctl start vsftpd </code>
##2.安裝並啟用TFTP服務
TFTP服務由tftp一server軟體包提供,設定檔坐落/etc/xinetd.d/tftp,設定時只要將「disable=yes」改為「disable=no",之後啟動TFTP服務即可。
<code class="hljs">[root@node01 ~]# yum -y install tftp-server [root@node01 ~]# vim /etc/xinetd.d/tftp [root@node01 ~]# systemctl start tftp [root@node01 ~]# systemctl enable tftp</code>
3.打算Linux核心、初始化鏡像檔
用於PXE網路安裝的Linux內核,初始化鏡像檔案可以從CentOS7系統光盤取得,分別為vmlinuz和initrd,img,坐落資料夾images/pxeboot下。找到這兩個檔案並將其複製到tftp服務的根目錄下。
<code class="hljs">[root@node01 ~]# cd /mnt/images/pxeboot/ [root@node01 pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot/</code>###
4.打算PXE引导程序、启动菜单文件
用于PXE网路安装的引导程序为pxelinux.0,由软件包syslinux提供。安装好软件包syslinux,然后将文件pxelinux.0也复制到tftp服务的根目录下。
<code class="hljs">[root@node01 ~]# yum -y install syslinux [root@node01 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ </code>
启动菜单拿来指导顾客机的引导过程,包括怎样调用内核,怎么加载初始化镜像。默认的启动菜单文件为defaultlinux学习视频,应放置在tftp根目录的pxelinux.ctg子目录下,典型的启动菜单配置可参考以下操作自动构建。
<code class="hljs">[root@node01 ~]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@node01 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default default auto //指定默认入口名称 prompt 1 //1表示等待用户控制 label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.184.101/centos7 label linux text kernel vmlinuz append text initrd=initrd.img method=ftp://192.168.184.101/centos7 label linux rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.184.101/centos7 </code>
上述配置记录中定义了三个引导入口,分别为图形安装(默认)、文本安装、救援模式。其中,prompt拿来设置是否等待用户选择;label拿来定义并分隔启动项;kernel和append拿来定义引导参数。引导入口的个数及内容依照须要自行定义。诸如,实现无人值守安装时只须要一个入口就够了。
5.安装并启用DHCP服务
因为PXE顾客机一般是仍未装系统的裸机,因而为了与服务器取得联系并正确下载相关引导文件,须要预先配置好DHCP服务来手动分配地址并告知引导文件位置。如PXE服务器的IP地址为192.168.184.101,DHCP地址池为192.168.8.150~192.168.8.200.则可以参考以下操作来搭建DHCP服务器。
<code class="hljs">[root@node01 ~]# yum -y install dhcp [root@node01 ~]# vim /etc/dhcp/dhcpd.conf subnet 192.168.184.0 netmask 255.255.255.0 { range 192.168.184.150 192.168.184.200; option domain-name-servers 202.96.128.86; option domain-name "bdqn.com"; option routers 192.168.184.2; option broadcast-address 192.168.184.255; default-lease-time 21600; max-lease-time 43200; next-server 192.168.184.101;//指定TFTP服务器的地址 filename "pxelinux.0";//指定PXE引导程序的文件名 } [root@node01 ~]# systemctl start dhcpd [root@node01 ~]# systemctl enable dhcpd </code>
从上述过程可以见到,与通常DHCP服务不同的是,配置文件中降低了netx-server和filename这两行记录,分别拿来指定TFTP服务器的地址和PXE引导程序的文件名。
11.3.2验证PXE网路安装
搭建好PXE远程安装服务器之后,就可以使用顾客机进行安装测试了。对于新订购的服务器或PC裸机,通常不须要额外设置:若要为已有系统的主机重装系统,则可能须要更改BIOS设置,将“BootFirst”设为“NETWORK”或“LAN”,之后重启主机;若使用VMware创建的虚拟机进行测试,虚拟机显存起码须要2GB,否则在启动安装时会报错。
假如服务器配置正确,网路联接、PXE支持等都没有问题,则顾客机重启后将手动配置IP地址,之后从TFTP服务器中获取引导程序pxelinux.0,并按照引导菜单配置提示用户指定启动入口,如图中所示。
PXE网路安装的引导菜单
在提示字串“boot:”后直接按Enter键(或执行“auto”命令),将会步入默认的图形安装入口;若执行“linuxtext”命令,则步入文本安装入口;若执行“linuxrescue”命令,则步入搜救模式。
直接按Enter键确认后将手动通过网路下载安装文件,并步入图形安装程序界面,如图中所示。若才能成功抵达这一步批量安装linux,说明PXE网路安装基本成功。后续安装步骤与使用光碟的正常安装类似,这儿不再表述。
步入图形化安装配置程序
11.4实现Kickstart无人值守安装
上一节介绍了通过PXE技术远程安装CentOS7系统的方式,安装介质不再受限于光碟、移动硬碟等设备,大大增强了系统安装的灵活性.但是,安装期间仍须要自动选择语言,按键类型、指定安装源等一系列交互操作,当须要批量安装时十分不便捷。
本节将进一步学习怎样实现无人值守手动安装,通过使用Kickstart工具配置安装应答文件,自动完成安装过程中的各类设置,因而无须自动干预,提升网路装机效率。
11.4.1打算安装应答文件
在CentOS7系统中安装system-config-kickstart工具以后.即可通过图形化向导工具来配置安装应答文件,假如用户对手动应答文件的配置比较熟悉,也可以直接编辑CentOS7安装后手动创建的应答文件(/root/anaconda-ks.cfg),按照须要适当修订后使用。
1.配置安装应答参数
通过桌面菜单“应用程序”→“系统工具"→“Kickstart"即可打开“Kickstart配置程序”窗口。在“Kickstart配置程序”窗口中,可以针对基本配置、安装方式,引导装载程序选项,分区信息、网络配置等各类安装设置进行指定,如图中所示。
<code class="hljs">[root@node01 ~]# yum -y install system-config-kickstart</code>
“Kickstart配置程序”窗口
1)基本配置及安装方式
“基本配置”可参考图中来指定,比如,将默认语言设为“中文(繁体)”,时区设为“Asia/Shanghai”,根口令设为“abc.123”,中级配置中勾选“安装后重启”。在“安装方式”界面中,应正确指定CentOS7的安装方式,如右图所示。若有用户验证信息也需一并指定。在“引导装载程序选项”界面中,选择安装新引导装载程序。
指定CentOS7的安装方式
2)分区信息
在“分区信息”界面中,需正确规划硬碟分区方案。诸如,可界定一个1024MB的/boot分区、2GB的swap分区,将剩余空间界定给根分区,如图中所示。
指定硬碟分区方案
3)网路配置及防火墙配置
在“网络配置”界面中,添加一个网路设备“ens33”,将网路类型设为“DHCP”。
在“防火墙配置”界面中,可以选择禁用SELinux、禁用防火墙。
4)软件包选择
CentOS7系统开始不再提供软件包的选择,如图中所示,假如须要安装软件包,可以按照需要将/root/anaconda-ks.cfg的软件包安装脚本复制到ks.cfg文件中,只须要复制%packages到%end部份即可,在%packages到%end之间,包含以@开头的软件包列表,将不须要的软件名删掉,剩下的就是系统会手动安装的软件包。诸如,仅保留以下内容即为采用最小化安装。
以下操作将在完成脚本保存后再进行
<code class="hljs">[root@node01 ~]# vim anaconda-ks.cfg//将以下内容复制到 [root@node01 ~]# vim ks.cfg %packages @^gnome-desktop-environment @base @compat-libraries @core @desktop-debugging @development @dial-up @directory-client @fonts @gnome-desktop @guest-agents @guest-desktop-agents @input-methods @internet-browser @java-platform @multimedia @network-file-system-client @networkmanager-submodules @print-client @x11 chrony %end </code>
5)安装脚本
在“预安装脚本”界面、“安装后脚本”界面中,可以分别添加在安装前,安装后手动运行的可执行句子。此项设置使服务器的手动化配置显得愈发容易,比如,可以使顾客机在完成安装后手动设置YUM软件库房批量安装linux,如图中所示,须要注意的是,应确保所编撰的代码才能正确执行,以免安装失败。
6)其他信息
若没有特殊需求,在“验证”界面、“显示配置”界面中,保持默认设置就可以了。
<code class="hljs">rm -f /etc/yum.repos.d/* echo -e '[base]nname=CentOS7.3nbaseurl=ftp://192.168.184.101/centos7nenabled=1ngpgcheck=1ngpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7'>/etc/yum.repos.d/centos7.repo</code>
2.保存手动应答文件
选择“Kickstart配置程序”窗口的“文件“→“保存”命令,指定目标文件夹、文件名,将配置好的应答参数保存为文本文件,如/root/ks.ctg。之后若要更改此应答配置,可以在“Kickstart配置程序”窗口中打开进行调整,或则直接用Vl等文本编辑工具进行更改。
点左上角文件>保存
11.4.2实现批量手动装机
有了手动安装的应答文件以后,只要将其放置PXE安装服务器的FTP目录下,并适当更改引导菜单,就可以实现基于网路的批量手动装机了。
1.启用手动应答文件
在PXE远程安装服务器中,将上一节构建的应答文件复制到/var/ftp/centos7目录下,使顾客机才能通过ftp://192.168.184.101/centos7/ks.cfg访问:之后编辑引导菜单文件default,添加ks引导参数以指定ks.cfg应答文件的URL路径。
<code class="hljs">[root@node01 ~]# cp /root/ks.cfg /var/ftp/ks.cfg [root@node01 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default default auto prompt 0//0表示不等待用户控制 label auto kernel vmlinuz append initrd=initrd.img method=ftp://192.168.184.101/centos7 ks=ftp://192.168.184.101/ks.cfg//新加入的内容,指定ks.cfg应答文件的URL路径 label linux text kernel vmlinuz append text initrd=initrd.img method=ftp://192.168.184.101/centos7 label linux rescue kernel vmlinuz append rescue initrd=initrd.img method=ftp://192.168.184.101/centos7</code>
2.验证无人值守安装
启用手动应答安装以后,当顾客机每次以PXE方法引导时,将手动下载ks.cfg应答配置文件,之后按照其中的设置安装CentOS7系统,而无须手工干预,如图中所示,这样就可以同时为多台顾客机安装系统了。
顾客机安装完成之后,检测其YUM软件库房配置linux操作系统培训,可以发觉早已根据“安装后脚本”的设置手动构建了/etc/yum.repos.d/centos7.repo文件。
以上是Linux核心、初始化檔案、安裝來源、啟動選單、選單的詳細內容。更多資訊請關注PHP中文網其他相關文章!