PXE(preboot execute environment,預(yù)啟動(dòng)執(zhí)行環(huán)境)是由Intel公司開發(fā)的最新技術(shù),工作于Client/Server的網(wǎng)絡(luò)模式,支持工作站通過(guò)網(wǎng)絡(luò)從遠(yuǎn)端服務(wù)器下載映像,并由此支持通過(guò)網(wǎng)絡(luò)啟動(dòng)操作系統(tǒng),在啟動(dòng)過(guò)程中,終端要求服務(wù)器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協(xié)議下載一個(gè)啟動(dòng)軟件包到本機(jī)內(nèi)存中執(zhí)行,由這個(gè)啟動(dòng)軟件包完成終端基本軟件設(shè)置,從而引導(dǎo)預(yù)先安裝在服務(wù)器中的終端操作系統(tǒng)。PXE可以引導(dǎo)多種操作系統(tǒng),如:Windows95/98/2000/windows2003/windows2008/win7/win8,linux等。
成都創(chuàng)新互聯(lián)公司長(zhǎng)期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為麻章企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),麻章網(wǎng)站改版等技術(shù)服務(wù)。擁有十年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。
虛擬機(jī)軟件:VirtualBox
虛擬機(jī)網(wǎng)絡(luò)連接方式:僅主機(jī)(Host-Only)網(wǎng)絡(luò)
服務(wù)端操作系統(tǒng):CentOS 7
配置服務(wù):DHCP+TFTP+FTP(也可以使用HTTP、NFS等)
完成目標(biāo):搭建pxe環(huán)境,結(jié)合kickstart響應(yīng)文件,完成CentOS 7系統(tǒng)的自動(dòng)化安裝。
主要文件
系統(tǒng)安裝時(shí),由引導(dǎo)文件加載內(nèi)核文件后才可以看到系統(tǒng)安裝界面。
pxelinux.0 - 系統(tǒng)引導(dǎo)文件
vmlinuz、initrd.img - 內(nèi)核文件
DHCP 服務(wù)器
為客戶端提供必要的網(wǎng)絡(luò)信息,如IP、netmask、gateway、DNS等,并向客戶端提供引導(dǎo)文件(pxelinux.0)的位置及TFTP服務(wù)器地址等。
TFTP 服務(wù)器
主要為客戶端提供內(nèi)核文件和引導(dǎo)文件。
FTP 服務(wù)器
為客戶端提供kickstart響應(yīng)文件和系統(tǒng)鏡像文件。
pxe系統(tǒng)安裝時(shí),首先由dhcp服務(wù)器向客戶端提供IP、引導(dǎo)文件位置、tftp地址等信息,客戶端獲取相關(guān)信息后,通過(guò)TFTP下載引導(dǎo)文件和內(nèi)核文件,引導(dǎo)系統(tǒng)啟動(dòng),并通過(guò)ftp服務(wù)器下載系統(tǒng)安裝過(guò)程中所需的各項(xiàng)軟件包和kickstart響應(yīng)文件。
kickstart響應(yīng)文件主要用來(lái)自動(dòng)設(shè)置時(shí)區(qū)、密碼、系統(tǒng)分區(qū)、軟件包選擇等信息。
詳細(xì)系統(tǒng)環(huán)境為:
[root@pxe1 ~]# uname -a Linux pxe1 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux [root@pxe1 ~]# [root@pxe1 ~]# hostnamectl Static hostname: pxe1 Icon name: computer-vm Chassis: vm Machine ID: 18ef8dea83044565b82bf6bed368cdab Boot ID: 9beedf23c4e14016a0a458ddcd9c487b Virtualization: kvm Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-514.el7.x86_64 Architecture: x86-64 [root@pxe1 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.56.14 pxe1 [root@pxe1 yum.repos.d]# ifconfig enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.56.14 netmask 255.255.255.0 broadcast 192.168.56.255 inet6 fe80::a00:27ff:fe43:c11d prefixlen 64 scopeid 0x20<link> ether 08:00:27:43:c1:1d txqueuelen 1000 (Ethernet) RX packets 1441 bytes 121057 (118.2 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 928 bytes 98905 (96.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ...
關(guān)閉SELinux和防火墻:
# 為了后續(xù)配置方便,首先關(guān)閉系統(tǒng)SELinux和防火墻 # 關(guān)閉SELinux,修改文件使SELINUX=disabled [root@pxe1 ~]# vim /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted #重啟系統(tǒng)后配置生效,查看SELinux的狀態(tài)。 [root@pxe1 ~]# sestatus SELinux status: disabled #關(guān)閉防火墻 [root@pxe1 ~]# systemctl stop firewalld [root@pxe1 ~]# systemctl disable firewalld [root@pxe1 ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1)
在VirtualBox中新建linux虛擬機(jī):
名稱:隨便填寫
類型:linux
版本:Red Hat(64-bit)
虛擬硬盤:
現(xiàn)在創(chuàng)建虛擬硬盤,注意分配足夠的硬盤大小,避免因硬盤空間不足造成安裝失敗。我這里選擇20G,動(dòng)態(tài)分配。
開機(jī)啟動(dòng)順序:網(wǎng)絡(luò)啟動(dòng)排第一位。
設(shè)置方法:選中新建虛擬機(jī),設(shè)置--系統(tǒng)--主板--啟動(dòng)順序--設(shè)置網(wǎng)絡(luò)為第一位

網(wǎng)絡(luò):僅主機(jī)(Host-Only)網(wǎng)絡(luò)
設(shè)置方法:選中新建虛擬機(jī),設(shè)置--網(wǎng)絡(luò)--網(wǎng)卡1--啟用網(wǎng)絡(luò)連接--連接方式:Host-Only
這里主要介紹使用系統(tǒng)光盤配置本地yum源的方法。
首先掛載系統(tǒng)光盤:
在虛擬機(jī)右下角單擊光盤圖標(biāo),選擇需要掛載的系統(tǒng)鏡像文件。
.jpg)
創(chuàng)建yum源配置文件:
# 首先將光盤掛載到/mnt目錄下 [root@pxe1 ~]# umount /dev/cdrom -l [root@pxe1 ~]# mount /dev/cdrom /mnt/ mount: /dev/sr0 is write-protected, mounting read-only #創(chuàng)建yum配置文件 [root@pxe1 ~]# cd /etc/yum.repos.d/ [root@pxe1 yum.repos.d]# ls CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-fasttrack.repo CentOS-CR.repo CentOS-Media.repo CentOS-Vault.repo #避免系統(tǒng)中的repo文件影響,首先將其備份 [root@pxe1 yum.repos.d]# mkdir bak [root@pxe1 yum.repos.d]# mv *.repo bak/ [root@pxe1 yum.repos.d]# ls bak [root@pxe1 yum.repos.d]# vim my.repo [development] <--注意:這里一定要寫development name=my-centos7-dvd baseurl=file:///mnt enabled=1 gpgcheck=0
注意:my.repo文件中第一行[development],中括號(hào)中建議填寫development,填寫其他內(nèi)容會(huì)導(dǎo)致后面system-config-kickstart命令生成kickstart文件文件時(shí),出現(xiàn)以下問(wèn)題:
由于下載軟件包信息失敗,軟件包選擇被禁止
.jpg)
創(chuàng)建yum緩存:
[root@pxe1 yum.repos.d]# yum clean all Failed to set locale, defaulting to C Loaded plugins: fastestmirror, langpacks Cleaning repos: development Cleaning up everything [root@pxe1 yum.repos.d]# yum makecache Failed to set locale, defaulting to C Loaded plugins: fastestmirror, langpacks development | 3.6 kB 00:00:00 (1/4): development/filelists_db | 3.0 MB 00:00:00 (2/4): development/group_gz | 155 kB 00:00:00 (3/4): development/other_db | 1.3 MB 00:00:00 (4/4): development/primary_db | 3.0 MB 00:00:00 Determining fastest mirrors Metadata Cache Created
dhcp為客戶端提供必要的網(wǎng)絡(luò)信息,如IP、netmask、gateway、dns等,并向客戶端提供引導(dǎo)文件(pxelinux.0)的位置及TFTP服務(wù)器地址等。
[root@pxe1 yum.repos.d]# yum install -y dhcp ... Installed: dhcp.x86_64 12:4.2.5-47.el7.centos Complete!
dhcp配置文件位置:/etc/dhcp/dhcpd.conf
[root@pxe1 yum.repos.d]# cat /etc/dhcp/dhcpd.conf 
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
subnet 192.168.56.0 netmask 255.255.255.0 {
  range 192.168.56.10 192.168.56.20;
  filename "pxelinux.0";
  next-server 192.168.56.14;
}
# subnet 192.168.56.0 netmask 255.255.255.0 服務(wù)端IP網(wǎng)段及掩碼
# range 192.168.56.10 192.168.56.20; dhcp分發(fā)的地址范圍,最好將本機(jī)IP包含在內(nèi)。
# filename "pxelinux.0"; 指定引導(dǎo)文件位置,這里是TFTP根目錄下的pxelinux.0。
#  next-server 192.168.56.14; TFTP服務(wù)器地址。[root@pxe1 yum.repos.d]# systemctl restart dhcpd [root@pxe1 yum.repos.d]# systemctl enable dhcpd Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service. [root@pxe1 yum.repos.d]# systemctl status dhcpd ● dhcpd.service - DHCPv4 Server Daemon Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2017-05-25 11:00:26 CST; 26s ago Docs: man:dhcpd(8) man:dhcpd.conf(5) Main PID: 11849 (dhcpd) Status: "Dispatching packets..." CGroup: /system.slice/dhcpd.service └─11849 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pid May 25 11:00:26 pxe1 dhcpd[11849]: No subnet declaration for virbr0 (192.168.122.1). May 25 11:00:26 pxe1 dhcpd[11849]: ** Ignoring requests on virbr0. If this is not what May 25 11:00:26 pxe1 dhcpd[11849]: you want, please write a subnet declaration May 25 11:00:26 pxe1 dhcpd[11849]: in your dhcpd.conf file for the network segment May 25 11:00:26 pxe1 dhcpd[11849]: to which interface virbr0 is attached. ** May 25 11:00:26 pxe1 dhcpd[11849]: May 25 11:00:26 pxe1 dhcpd[11849]: Listening on LPF/enp0s3/08:00:27:43:c1:1d/192.168.56.0/24 May 25 11:00:26 pxe1 dhcpd[11849]: Sending on LPF/enp0s3/08:00:27:43:c1:1d/192.168.56.0/24 May 25 11:00:26 pxe1 dhcpd[11849]: Sending on Socket/fallback/fallback-net May 25 11:00:26 pxe1 systemd[1]: Started DHCPv4 Server Daemon. [root@pxe1 yum.repos.d]# netstat -nulp | grep dhcp udp 0 0 0.0.0.0:67 0.0.0.0:* 11849/dhcpd udp 0 0 0.0.0.0:16465 0.0.0.0:* 11849/dhcpd udp6 0 0 :::31651 :::* 11849/dhcpd
注意:如果啟動(dòng)dhcp服務(wù)報(bào)錯(cuò),請(qǐng)查看
/var/log/messages日志,會(huì)有明顯的錯(cuò)誤提示,多數(shù)是配置文件格式或內(nèi)容錯(cuò)誤造成的。
dhcp服務(wù)器配置完成后,便可啟動(dòng)之前準(zhǔn)備的客戶端虛擬機(jī)查看是否可以獲取到IP地址,能正常獲取IP則說(shuō)明配置正常,如下:
.jpg)
至此,dhcp服務(wù)器配置完成。
TFTP服務(wù)器主要為客戶端提供內(nèi)核文件和引導(dǎo)文件。
安裝方法:
[root@pxe1 /]# yum install -y tftp-server ... Installed: tftp-server.x86_64 0:5.2-13.el7 Complete! # 安裝tftp命令,可用來(lái)測(cè)試TFTP服務(wù)能否正常運(yùn)行 [root@pxe1 /]# yum install -y tftp
# 編輯配置文件/etc/xinetd.d/tftp [root@pxe1 /]# vim /etc/xinetd.d/tftp disable = no <--將yes修改為no
啟動(dòng)tftp服務(wù):
# 首先確保tftp.socket正常 [root@pxe1 /]# systemctl start tftp.socket [root@pxe1 /]# systemctl enable tftp.socket Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket. [root@pxe1 /]# systemctl status tftp.socket ● tftp.socket - Tftp Server Activation Socket Loaded: loaded (/usr/lib/systemd/system/tftp.socket; enabled; vendor preset: disabled) Active: active (listening) since 四 2017-05-25 14:57:33 CST; 1h 0min ago Listen: [::]:69 (Datagram) 5月 25 14:57:33 pxe1 systemd[1]: Listening on Tftp Server Activation Socket. 5月 25 14:57:33 pxe1 systemd[1]: Starting Tftp Server Activation Socket. # 然后啟動(dòng)tftp.service [root@pxe1 ~]# systemctl restart tftp.service [root@pxe1 ~]# systemctl enable tftp.service Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket. [root@pxe1 ~]# systemctl status tftp.service ● tftp.service - Tftp Server Loaded: loaded (/usr/lib/systemd/system/tftp.service; indirect; vendor preset: disabled) Active: active (running) since 四 2017-05-25 14:57:33 CST; 20s ago Docs: man:in.tftpd Main PID: 14621 (in.tftpd) CGroup: /system.slice/tftp.service └─14621 /usr/sbin/in.tftpd -s /var/lib/tftpboot 5月 25 14:57:33 pxe1 systemd[1]: Started Tftp Server. 5月 25 14:57:33 pxe1 systemd[1]: Starting Tftp Server...
需要導(dǎo)入TFTP服務(wù)器的主要文件有:
引導(dǎo)文件 - pxelinux.0
內(nèi)核文件:vmlinuz initrd.img
引導(dǎo)菜單:isolinux.cfg -- 開機(jī)后選擇啟動(dòng)項(xiàng)的菜單文件
引導(dǎo)文件pxelinux.0由軟件包syslinux生成,首先要安裝syslinux軟件包:
[root@pxe1 ~]# yum install -y syslinux # 將pxelinux.0拷貝至TFTP根目錄下 [root@pxe1 ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
內(nèi)核文件:vmlinuz initrd.img,一般存在于系統(tǒng)光盤的pxeboot目錄下:
[root@pxe1 syslinux]# cd /mnt/images/pxeboot/ [root@pxe1 pxeboot]# ls initrd.img TRANS.TBL vmlinuz
但是我們可以發(fā)現(xiàn),在isolinux目錄下也有相同的內(nèi)容,同時(shí),還包括引導(dǎo)菜單(isolinux.cfg)及其啟動(dòng)時(shí)用到的文件:
isolinux.cfg - 引導(dǎo)菜單配置文件
vesamenu.c32 - 系統(tǒng)自帶的兩種窗口模塊之一
boot.msg - 窗口提示信息文件,提示信息在菜單出現(xiàn)前出現(xiàn),顯示時(shí)間較短,可以添加些藝術(shù)字之類的信息。
splash.png - 窗口背景圖片
因此,我們可以從系統(tǒng)光盤的images/pxeboot/目錄下復(fù)制內(nèi)核文件,也可以從isolinux下復(fù)制,為了方便起見(jiàn),這里從isolinux目錄下復(fù)制,可以只復(fù)制我們需要的文件,如:
isolinux.cfg vesamenu.c32 boot.msg splash.png
也可以將isolinux目錄下的文件全部復(fù)制到TFTP根目錄/var/lib/tftpboot:
[root@pxe1 /]# cp -rf /mnt/isolinux/* /var/lib/tftpboot/
然后準(zhǔn)備pxe引導(dǎo)菜單:
[root@pxe1 /]# mkdir /var/lib/tftpboot/pxelinux.cfg [root@pxe1 /]# mv /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default [root@pxe1 /]# cd /var/lib/tftpboot/pxelinux.cfg [root@pxe1 pxelinux.cfg]# ls default
修改引導(dǎo)菜單選項(xiàng):
[root@pxe1 pxelinux.cfg]# vim /var/lib/tftpboot/pxelinux.cfg/default # 首先修改菜單等待時(shí)間 timeout 600 <--菜單顯示等待時(shí)間,單位為1/10秒,默認(rèn)等待60秒。 #修改菜單等待時(shí)間為60,即等待6秒,若無(wú)操作則進(jìn)入默認(rèn)菜單; timeout 600 # 然后修改顯示菜單 # ----------------------------------------------------------------- # 找到文件中的以下部分 label linux menu label ^Install CentOS Linux 7 kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet label check menu label Test this ^media & install CentOS Linux 7 menu default kernel vmlinuz append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet # 將其修改為 label linux menu label ^Install CentOS Linux 7 by kickstart menu default kernel vmlinuz append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.ks=ftp://192.168.56.14/ks.cfg label linux 2 menu label ^Install CentOS Linux 7 by vnc kernel vmlinuz append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.vnc inst.vncpassword=password label linux 3 menu label ^Install CentOS Linux 7 by vnc -listen kernel vmlinuz append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.vnc inst.vncconnect=192.168.56.1 # 本文中其他內(nèi)容無(wú)需進(jìn)行修改,有興趣可自己嘗試修改其他選項(xiàng)進(jìn)行測(cè)試。
下面來(lái)驗(yàn)證TFTP服務(wù)配置是否正確:
[root@pxe1 kk]# ls /var/lib/tftpboot/ boot.cat grub.conf isolinux.bin pxelinux.0 splash.png vesamenu.c32 boot.msg initrd.img memtest pxelinux.cfg TRANS.TBL vmlinuz [root@pxe1 kk]# [root@pxe1 kk]# tftp 192.168.56.14 tftp> get boot.msg tftp> quit [root@pxe1 kk]# [root@pxe1 kk]# ls boot.msg # 成功get到boot.msg文件,說(shuō)明TFTP服務(wù)正常。
啟動(dòng)之前準(zhǔn)備的客戶端虛擬機(jī)查看是否可以正常顯示引導(dǎo)菜單,是否可以正常獲取initrd.img和vmlinuz內(nèi)核文件。
若配置正常,會(huì)看到之前配置的引導(dǎo)菜單出現(xiàn):

在對(duì)應(yīng)的引導(dǎo)菜單上按TAB鍵會(huì)顯示出該菜單項(xiàng)的具體配置:
.jpg)
按Enter鍵后,會(huì)出現(xiàn)獲取內(nèi)核文件的界面:

最后系統(tǒng)提示獲取ks文件失敗,原因是尚未進(jìn)行ftp服務(wù)器的配置:

[root@pxe1 mnt]# yum install -y system-config-kickstart # 安裝完成后,圖形界面執(zhí)行system-config-kickstart命令配置ks文件
kickstart文件配置注意事項(xiàng)如下:

下圖中光盤掛載位置為FTP根目錄下的pub目錄,即/var/ftp/pub:



軟件包選擇界面,可以直接在這里選擇,也可以拷貝服務(wù)端/root/anaconda-ks.cfg文件中%packages和%end區(qū)間的內(nèi)容至新文件。

其他選項(xiàng)請(qǐng)按需選擇,配置完成后,保存文件,待FTP服務(wù)器配置完成后,需要將其拷貝至FTP根目錄/var/ftp。
然后修改生成的ks.cfg文件,在文件末尾(不要?jiǎng)h除文件末尾的%end),添加以下內(nèi)容,表示關(guān)閉kdump功能:
%addon com_redhat_kdump --disable --reserve-mb='auto' %end
至此,kickstart文件配置完成。
[root@pxe1 mnt]# yum install -y vsftpd [root@pxe1 mnt]# systemctl restart vsftpd [root@pxe1 mnt]# systemctl enable vsftpd Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service. [root@pxe1 mnt]# systemctl status vsftpd ● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since 2017-05-25 16:59:12 CST; 11s ago Main PID: 16466 (vsftpd) CGroup: /system.slice/vsftpd.service └─16466 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf 5月 25 16:59:12 pxe1 systemd[1]: Starting Vsftpd ftp daemon... 5月 25 16:59:12 pxe1 systemd[1]: Started Vsftpd ftp daemon. # 安裝ftp命令,用于ftp服務(wù)器驗(yàn)證。 [root@pxe1 mnt]# yum install -y ftp
[root@pxe1 /]# systemctl restart vsftpd [root@pxe1 /]# systemctl enable vsftpd [root@pxe1 /]# systemctl status vsftpd ● vsftpd.service - Vsftpd ftp daemon Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; enabled; vendor preset: disabled) Active: active (running) since 五 2017-05-26 08:28:29 CST; 15s ago Main PID: 2682 (vsftpd) CGroup: /system.slice/vsftpd.service └─2682 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf 5月 26 08:28:28 pxe1 systemd[1]: Starting Vsftpd ftp daemon... 5月 26 08:28:29 pxe1 systemd[1]: Started Vsftpd ftp daemon.
首先將剛才生成的kickstart文件復(fù)制到FTP跟目錄下:
[root@pxe1 /]# cd /var/ftp/ [root@pxe1 ftp]# ls ks.cfg pub
然后將關(guān)盤掛載至/var/ftp/pub目錄下:
# 因?yàn)榕渲脃um源時(shí)已經(jīng)將光盤掛載至/mntt目錄下了,現(xiàn)在有兩種方法進(jìn)行光盤掛載: # 1.將/mnt目錄綁定到/var/ftp/pub目錄下 [root@pxe1 ~]# mount --bind /mnt/ /var/ftp/pub/ [root@pxe1 ~]# ls /var/ftp/pub/ CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7 EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL # 2. 先將光盤從/mnt目錄卸載,然后掛載到/var/ftp/pub目錄下 [root@pxe1 ~]# umount /dev/cdrom [root@pxe1 ~]# mount /dev/cdrom /var/ftp/pub/
本次配置在生成kickstart文件時(shí),登陸用戶為匿名用戶anonumous,下面測(cè)試匿名用戶能否正常從FTP服務(wù)器下載文件:
[root@pxe1 kk]# ls /var/ftp/ ks.cfg pub [root@pxe1 kk]# ftp 192.168.56.14 Connected to 192.168.56.14 (192.168.56.14). 220 (vsFTPd 3.0.2) Name (192.168.56.14:root): anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (192,168,56,14,217,98). 150 Here comes the directory listing. -rw-r--r-- 1 0 0 1459 May 25 09:36 ks.cfg drwxr-xr-x 8 0 0 2048 Dec 05 13:20 pub 226 Directory send OK. ftp> get ks.cfg local: ks.cfg remote: ks.cfg 227 Entering Passive Mode (192,168,56,14,152,101). 150 Opening BINARY mode data connection for ks.cfg (1459 bytes). 226 Transfer complete. 1459 bytes received in 0.0433 secs (33.68 Kbytes/sec) ftp> bye 221 Goodbye. [root@pxe1 kk]# ls ks.cfg
成功get到ks.cfg文件,表示配置正常,現(xiàn)在可以重啟客戶端虛擬機(jī)測(cè)試是否可以進(jìn)行自動(dòng)化系統(tǒng)安裝。
重啟客戶端虛擬機(jī),可以看到系統(tǒng)開始自動(dòng)安裝,至此,pxe+kickstart自動(dòng)系統(tǒng)安裝配置完成。


本文中配置的引導(dǎo)菜單default主要內(nèi)容如下:
label linux menu label ^Install CentOS Linux 7 by kickstart menu default kernel vmlinuz append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.ks=ftp://192.168.56.14/ks.cfg label linux 2 menu label ^Install CentOS Linux 7 by vnc kernel vmlinuz append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.vnc inst.vncpassword=password label linux 3 menu label ^Install CentOS Linux 7 by vnc -listen kernel vmlinuz append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.vnc inst.vncconnect=192.168.56.1
在系統(tǒng)啟動(dòng)過(guò)程中,菜單依次對(duì)應(yīng)如下內(nèi)容:
.jpg)
菜單一介紹:
label linux menu label ^Install CentOS Linux 7 by kickstart menu default kernel vmlinuz append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.ks=ftp://192.168.56.14/ks.cfg # 使用kickstart自動(dòng)安裝 # 這項(xiàng)菜單表示鏡像文件在FTP根目錄/var/ftp/pub下,kickstart文件在FTP根目錄/var/ftp下。
菜單二介紹:
label linux 2 menu label ^Install CentOS Linux 7 by vnc kernel vmlinuz append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.vnc inst.vncpassword=password # 使用vnc手動(dòng)安裝 # 該菜單表示鏡像文件在FTP根目錄/var/ftp/pub下,vnc密碼為password,選中該菜單后,系統(tǒng)啟動(dòng)后會(huì)提示vnc登錄的IP及端口,vnc連接后,便可進(jìn)行手動(dòng)系統(tǒng)安裝,也可以在菜單最后指定kickstart文件位置,自動(dòng)安裝。
如圖:

菜單三介紹:
label linux 3 menu label ^Install CentOS Linux 7 by vnc -listen kernel vmlinuz append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.vnc inst.vncconnect=192.168.56.1 # 該菜單項(xiàng)表示使用vnc監(jiān)聽模式進(jìn)行系統(tǒng)安裝 # 該菜單表示鏡像文件在FTP根目錄/var/ftp/pub下,vnc監(jiān)聽進(jìn)程在計(jì)算機(jī)192.168.56.1上,無(wú)登錄密碼; # 注意:inst.vncconnect=192.168.56.1 指的是將要運(yùn)行vnc客戶端的計(jì)算機(jī)IP地址。
這里的192.168.56.1為我的筆記本IP,所以在啟動(dòng)客戶端虛擬機(jī)后,只需要在筆記本上打開vnc客戶端監(jiān)聽模式,即可自動(dòng)顯示安裝界面。

在筆記本上打開vnc監(jiān)聽模式后,稍作等待,會(huì)自動(dòng)連接到系統(tǒng)安裝界面:
.jpg)

vesamenu.c32 -菜單模塊之一
本文上面介紹的引導(dǎo)菜單就是利用vesamenu.c32生成的。
menu.c32 - 菜單模塊之一
安裝了syslinux命令包后,兩種菜單模塊都會(huì)在目錄/usr/share/syslinux/下生成,使用menu.c32創(chuàng)建引導(dǎo)菜單時(shí),只需要將菜單模塊menu.c32及內(nèi)核文件、引導(dǎo)文件拷貝至TFTP根目錄下/var/lib/tftpboot即可。
[root@pxe1 tftpboot]# ls /var/lib/tftpboot/ initrd.img menu.c32 pxelinux.0 pxelinux.cfg vmlinuz
菜單文件內(nèi)容為:
[root@pxe1 tftpboot]# cat /var/lib/tftpboot/pxelinux.cfg/default default menu.c32 timeout 60 menu title CentOS 7 Pxe Menu label linux menu label ^Install CentOS Linux 7 by kickstart menu default kernel vmlinuz append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.ks=ftp://192.168.56.14/ks.cfg label linux 2 menu label ^Install CentOS Linux 7 by vnc kernel vmlinuz append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.vnc inst.vncpassword=password label linux 3 menu label ^Install CentOS Linux 7 by vnc -listen kernel vmlinuz append initrd=initrd.img inst.repo=ftp://192.168.56.14/pub inst.vnc inst.vncconnect=192.168.56.1
菜單顯示樣式為:

                文章標(biāo)題:RHEL7/CentOS7pxe+kickstart自動(dòng)化
                
                文章源于:http://www.chinadenli.net/article38/jdhesp.html
            
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計(jì)、自適應(yīng)網(wǎng)站、品牌網(wǎng)站建設(shè)、動(dòng)態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
