相信很多人都有過裝系統(tǒng)的經(jīng)歷,以前是用光盤,現(xiàn)在基本都是用U盤來裝系統(tǒng)。我們只需要制作一個U盤驅(qū)動即可,安裝起來方便快捷。但如果是企業(yè)需要同時安裝大量的系統(tǒng)時,U盤很顯然不適合,它會耗費大量的時間。這時我們就可以用到PXE遠程安裝服務(wù)了,它可以提供大量的客戶機同時安裝系統(tǒng)。但是,同時安裝的客戶機數(shù)量是受到帶寬的限制的。而且在安裝系統(tǒng)時,還需要手動進行部分設(shè)置。這時我們就會用到Kickstart無人值守安裝。
創(chuàng)新互聯(lián)公司成立與2013年,先為碧江等服務(wù)建站,碧江等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為碧江企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
PXE:預(yù)啟動執(zhí)行環(huán)境(Preboot eXecution Environment,PXE)也被稱為預(yù)執(zhí)行環(huán)境,提供了一種使用網(wǎng)絡(luò)接口(Network Interface)啟動計算機的機制。這種機制讓計算機的啟動可以不依賴本地數(shù)據(jù)存儲設(shè)備(如硬盤)或本地已安裝的操作系統(tǒng)。 工作于Client/Server的網(wǎng)絡(luò)模式,支持工作站通過網(wǎng)絡(luò)從遠端服務(wù)器下載映像,并由此支持通過網(wǎng)絡(luò)啟動操作系統(tǒng),在啟動過程中,終端要求服務(wù)器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協(xié)議下載一個啟動軟件包到本機內(nèi)存中執(zhí)行,由這個啟動軟件包完成終端基本軟件設(shè)置,從而引導(dǎo)預(yù)先安裝在服務(wù)器中的終端操作系統(tǒng)。嚴(yán)格來說,PXE 并不是一種安裝方式,而是一種引導(dǎo)方式。進行 PXE 安裝的必要條件是在要安裝的計算機中必須包含一個 PXE 支持的網(wǎng)卡(NIC),即網(wǎng)卡中必須要有 PXE Client。PXE 協(xié)議可以使計算機通過網(wǎng)絡(luò)啟動。此協(xié)議分為 Client端和 Server 端,而PXE Client則在網(wǎng)卡的 ROM 中。當(dāng)計算機引導(dǎo)時,BIOS 把 PXE Client 調(diào)入內(nèi)存中執(zhí)行,然后由 PXE Client 將放置在遠端的文件通過網(wǎng)絡(luò)下載到本地運行。運行 PXE 協(xié)議需要設(shè)置 DHCP 服務(wù)器和 TFTP 服務(wù)器。DHCP 服務(wù)器會給 PXE Client(將要安裝系統(tǒng)的主機)分配一個 IP 地址,由于是給 PXE Client 分配 IP 地址,所以在配置 DHCP 服務(wù)器時需要增加相應(yīng)的 PXE 設(shè)置。此外,在 PXE Client 的 ROM 中,已經(jīng)存在了 TFTP Client,那么它就可以通過 TFTP 協(xié)議到 TFTP Server 上下載所需的文件了。
Kickstart:是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄典型的需要人工干預(yù)填寫的各種參數(shù),并生成一個名為ks.cfg的文件。如果在安裝過程中(不只局限于生成Kickstart安裝文件的機器)出現(xiàn)要填寫參數(shù)的情況,安裝程序首先會去查找Kickstart生成的文件,如果找到合適的參數(shù),就采用所找到的參數(shù);如果沒有找到合適的參數(shù),便需要安裝者手工干預(yù)了。所以,如果Kickstart文件涵蓋了安裝過程中可能出現(xiàn)的所有需要填寫的參數(shù),那么安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然后就去忙自己的事情。等安裝完畢,安裝程序會根據(jù)ks.cfg中的設(shè)置重啟系統(tǒng),并結(jié)束安裝。
1. PXE Client 從自己的PXE網(wǎng)卡啟動,向本網(wǎng)絡(luò)中的DHCP服務(wù)器索取IP;
2. DHCP 服務(wù)器會分配給客戶機的IP,同時告知PXE文件的放置位置(該文件一般是放在一臺TFTP服務(wù)器上) ;
3. PXE Client 向本網(wǎng)絡(luò)中的TFTP服務(wù)器索取pxelinux.0 文件;
4. PXE Client 取得pxelinux.0 文件后之執(zhí)行該文件;
5. 根據(jù)pxelinux.0 的執(zhí)行結(jié)果,通過TFTP服務(wù)器加載內(nèi)核和文件系統(tǒng) ;
6. 進入安裝畫面, 此時可以通過選擇HTTP、FTP、NFS 方式之一進行安裝(我用的是FTP)。
用VMware14 虛擬機來進行本次實驗:
1.首先為了方便實驗,需要一臺CentOS7同時部署DHCP、TFTP、FTP服務(wù)來作為PXE服務(wù)端。服務(wù)端需要配置雙網(wǎng)卡,一塊為NAT模式,用來聯(lián)網(wǎng)安裝所需程序,一塊為僅主機模式,配置一個固定IP用來與局域網(wǎng)互通。
2.新建一臺虛擬機用來作為PXE客戶端,用來進行遠程安裝,安裝的系統(tǒng)也為CentOS7。
1.給客戶端添加一塊網(wǎng)卡,并將網(wǎng)絡(luò)模式改為僅主機模式。
2.進入“/network-scripts/”目錄下,復(fù)制一份“ifcfg-ens33”配置文件,命名為“ifcfg-ens36”?!?p”為保留原有權(quán)限。
輸入:cd /etc/sysconfig/network-scripts/
輸入:cp -p ifcfg-ens33 ifcfg-ens36
3.用vim編輯器對配置文件“ifcfg-ens36”進行編輯,將“dhcp”改為“static”,“ens33”改為“ens36”,刪除“UUID”,同時添加IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)。
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=7bdb3fdc-0c3b-4a92-918d-3815b0816b02
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.100.100
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
4.重啟網(wǎng)絡(luò)服務(wù),再查看一下網(wǎng)絡(luò)配置?!癳ns36”網(wǎng)卡的固定IP已經(jīng)設(shè)置成功。
輸入:systemctl restart network
輸入:ifconfig
5.安裝DHCP服務(wù)所需軟件包。
輸入:yum install dhcp -y
6.復(fù)制一份DHCP主配置文件的模板,覆蓋DHCP的主配置文件。
輸入:cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
7.用vim編輯器對DHCP服務(wù)主配置文件進行編輯,添加一個“192.168.100.0”網(wǎng)段的配置文件,地址池可根據(jù)具體情況自己決定,主要是下一個TFTP服務(wù)器的路徑和引導(dǎo)程序的位置。
添加:
subnet 192.168.100.0 netmask 255.255.255.0 {
range 192.168.100.20 192.168.100.30;
option routers 192.168.100.100;
option domain-name-servers 114.114.114.114;
next-server 192.168.100.100;
filename "pxelinux.0";
}
8.安裝“syslinux”軟件包和“tftp-server”軟件包。
輸入:yum install syslinux -y
輸入:yum install tftp-server -y
9.查看一下“syslinux”和“tftp-server”軟件包的配置文件,我將重要的配置文件標(biāo)了出來。
輸入:rpm -ql syslinux |grep pxelinux.0
輸入:rpm -ql tftp-server
10.復(fù)制一份“pxelinux.0”文件到“/var/lib/tftpboot/”目錄下,并查看是否復(fù)制成功。
輸入:cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
輸入:ls /var/lib/tftpboot/
11.用vim編輯器對TFTP服務(wù)的配置文件進行編輯,將“disable”后的“yes”改為“no”,開啟TFTP服務(wù)。
輸入:vim /etc/xinetd.d/tftp
12.安裝FTP服務(wù)所需軟件包。
輸入:yum install vsftpd -y
13.進入到FTP服務(wù)的站點目錄下,新建一個centos7目錄。
輸入:cd /var/ftp/
輸入:mkdir centos7
14.將PXE客戶端所需要的光盤鏡像掛載到剛才創(chuàng)建的centos7目錄下,并查看掛載信息(你也可以直接復(fù)制過去)。
輸入:mount /dev/sr0 /var/ftp/centos7/
輸入:df -h
15.進入到“centos7/images/pxeboot/”目錄下(可以一步直接進入),將文件“initrd.img”和“vmlinuz”復(fù)制到“/var/lib/tftpboot/”目錄下。
輸入:cd centos7/images/pxeboot/
輸入:cp initrd.img vmlinuz /var/lib/tftpboot/
16.查看一下“ /var/lib/tftpboot/”目錄,已經(jīng)有了三個文件了,其中“pxelinux.0”是引導(dǎo)程序文件,“vmlinuz”是壓縮內(nèi)核文件,“initrd.img”是系統(tǒng)初始化文件。現(xiàn)在還差一個默認的啟動菜單文件,所以我們直接進入“/var/lib/tftpboot/”目錄,創(chuàng)建一個目錄“pxelinux.cfg”,然后在目錄“pxelinux.cfg”內(nèi)新建一個文件“default”。
輸入:ls /var/lib/tftpboot/
輸入:cd /var/lib/tftpboot/
輸入:mkdir pxelinux.cfg
輸入:cd pxelinux.cfg/
輸入:vim default
17.在“default”文件中,輸入以下內(nèi)容。
default auto //默認自動模式
prompt 1 //等待時間1s
label auto //自動模式安裝
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux text //文本模式安裝
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux rescue //進入救援模式
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
18.關(guān)閉防火墻和增強性安全功能,同時開啟DHCP、TFTP、FTP服務(wù)。
輸入:systemctl stop firewalld.service
輸入:setenforce 0
輸入:systemctl start dhcpd
輸入:systemctl start tftp
輸入:systemctl start vsftpd
19.咱們新建一個虛擬機,具體配置如下圖,注意網(wǎng)絡(luò)為僅主機模式。
20.打開新建的虛擬機作為PXE客戶機,選擇網(wǎng)絡(luò)驅(qū)動。
21.客戶機會獲取到DHCP服務(wù)分配的IP地址,然后啟動引導(dǎo)程序,加載默認的啟動菜單。此時需要回車才會繼續(xù)。
22.在回車后,稍作等待就會進入系統(tǒng)安裝的設(shè)置界面。
23.我們可以看到PXE遠程安裝服務(wù),在安裝過程中任需要人工進行設(shè)置,而我們需要的是無人值守安裝,那么我們可以配置“kickstart”程序。首先安裝一個“system-config-kickstart”軟件包。
輸入:yum install system-config-kickstart -y
24.我們進入圖形化界面(可以用“init 5”命令進入),進入Kickstart的配置面板。
25.基本配置,設(shè)置好默認語言和時區(qū),同時設(shè)置root用戶密碼,勾選安裝后重啟。
26.安裝方法,選擇FTP,同時輸入FTP服務(wù)器的路徑和存放鏡像文件的目錄。
27.引導(dǎo)裝載程序選項,勾選安裝引導(dǎo)裝載程序即可。GRUB密碼也可以設(shè)置,這樣系統(tǒng)會更加安全。
28.分區(qū)信息,點擊添加分別設(shè)置“/boot”、“/home”、“swap”、“/”等分區(qū)的大小。注意根分區(qū)“/”不用設(shè)置大小,直接勾選使用磁盤全部未使用空間即可。
29.網(wǎng)絡(luò)配置,添加一塊ens33網(wǎng)卡,網(wǎng)絡(luò)類型默認的DHCP模式即可。
30.防火墻配置,禁用SELinux。
31.安裝后腳本,選擇使用解釋程序,輸入“/bin/bash”即可。
32.保存配置好的文件,將文件“ks.cfg”保存到FTP服務(wù)的站點目錄”/var/ftp“下。
33.我們先進入root的家目錄,用vim編輯器進入“anaconda-ks.cfg”文件,這是“ks.cfg”的模板文件,我們將其中的安裝包命令復(fù)制,粘貼到“ks.cfg”文件中去。
輸入:cd ~
輸入:vim anaconda-ks.cfg
輸入:cd /var/ftp/
輸入:vim ks.cfg
34.我們再進入“/var/lib/tftpboot/pxelinux.cfg/” 目錄,用vim編輯器對“default”文件進行編輯,在自動模式的文件后面添加一個kickstart配置文件的路徑。
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img method=ftp://192.168.100.100/centos7 ks=ftp://192.168.100.100/ks.cfg
label linux text
kernel vmlinuz
append text initrd=initrd.img method=ftp://192.168.100.100/centos7
label linux rescue
kernel vmlinuz
append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
35.我們再新建一臺虛擬機,配置與之前的相同。
36.啟動新建的虛擬機,操作與PXE遠程安裝一樣,不過這次不需要在手動設(shè)置了,系統(tǒng)會自動執(zhí)行我們在“ks.cfg”文件中配置的內(nèi)容。