您好,登錄后才能下訂單哦!
相信很多人都有過裝系統的經歷,以前是用光盤,現在基本都是用U盤來裝系統。我們只需要制作一個U盤驅動即可,安裝起來方便快捷。但如果是企業需要同時安裝大量的系統時,U盤很顯然不適合,它會耗費大量的時間。這時我們就可以用到PXE遠程安裝服務了,它可以提供大量的客戶機同時安裝系統。但是,同時安裝的客戶機數量是受到帶寬的限制的。而且在安裝系統時,還需要手動進行部分設置。這時我們就會用到Kickstart無人值守安裝。
PXE:預啟動執行環境(Preboot eXecution Environment,PXE)也被稱為預執行環境,提供了一種使用網絡接口(Network Interface)啟動計算機的機制。這種機制讓計算機的啟動可以不依賴本地數據存儲設備(如硬盤)或本地已安裝的操作系統。 工作于Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,并由此支持通過網絡啟動操作系統,在啟動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟件包到本機內存中執行,由這個啟動軟件包完成終端基本軟件設置,從而引導預先安裝在服務器中的終端操作系統。嚴格來說,PXE 并不是一種安裝方式,而是一種引導方式。進行 PXE 安裝的必要條件是在要安裝的計算機中必須包含一個 PXE 支持的網卡(NIC),即網卡中必須要有 PXE Client。PXE 協議可以使計算機通過網絡啟動。此協議分為 Client端和 Server 端,而PXE Client則在網卡的 ROM 中。當計算機引導時,BIOS 把 PXE Client 調入內存中執行,然后由 PXE Client 將放置在遠端的文件通過網絡下載到本地運行。運行 PXE 協議需要設置 DHCP 服務器和 TFTP 服務器。DHCP 服務器會給 PXE Client(將要安裝系統的主機)分配一個 IP 地址,由于是給 PXE Client 分配 IP 地址,所以在配置 DHCP 服務器時需要增加相應的 PXE 設置。此外,在 PXE Client 的 ROM 中,已經存在了 TFTP Client,那么它就可以通過 TFTP 協議到 TFTP Server 上下載所需的文件了。
Kickstart:是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄典型的需要人工干預填寫的各種參數,并生成一個名為ks.cfg的文件。如果在安裝過程中(不只局限于生成Kickstart安裝文件的機器)出現要填寫參數的情況,安裝程序首先會去查找Kickstart生成的文件,如果找到合適的參數,就采用所找到的參數;如果沒有找到合適的參數,便需要安裝者手工干預了。所以,如果Kickstart文件涵蓋了安裝過程中可能出現的所有需要填寫的參數,那么安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然后就去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中的設置重啟系統,并結束安裝。
1. PXE Client 從自己的PXE網卡啟動,向本網絡中的DHCP服務器索取IP;
2. DHCP 服務器會分配給客戶機的IP,同時告知PXE文件的放置位置(該文件一般是放在一臺TFTP服務器上) ;
3. PXE Client 向本網絡中的TFTP服務器索取pxelinux.0 文件;
4. PXE Client 取得pxelinux.0 文件后之執行該文件;
5. 根據pxelinux.0 的執行結果,通過TFTP服務器加載內核和文件系統 ;
6. 進入安裝畫面, 此時可以通過選擇HTTP、FTP、NFS 方式之一進行安裝(我用的是FTP)。
用VMware14 虛擬機來進行本次實驗:
1.首先為了方便實驗,需要一臺CentOS7同時部署DHCP、TFTP、FTP服務來作為PXE服務端。服務端需要配置雙網卡,一塊為NAT模式,用來聯網安裝所需程序,一塊為僅主機模式,配置一個固定IP用來與局域網互通。
2.新建一臺虛擬機用來作為PXE客戶端,用來進行遠程安裝,安裝的系統也為CentOS7。
1.給客戶端添加一塊網卡,并將網絡模式改為僅主機模式。
2.進入“/network-scripts/”目錄下,復制一份“ifcfg-ens33”配置文件,命名為“ifcfg-ens36”。“-p”為保留原有權限。
輸入:cd /etc/sysconfig/network-scripts/
輸入:cp -p ifcfg-ens33 ifcfg-ens36
3.用vim編輯器對配置文件“ifcfg-ens36”進行編輯,將“dhcp”改為“static”,“ens33”改為“ens36”,刪除“UUID”,同時添加IP地址、子網掩碼、網關。
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.重啟網絡服務,再查看一下網絡配置。“ens36”網卡的固定IP已經設置成功。
輸入:systemctl restart network
輸入:ifconfig
5.安裝DHCP服務所需軟件包。
輸入:yum install dhcp -y
6.復制一份DHCP主配置文件的模板,覆蓋DHCP的主配置文件。
輸入:cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
7.用vim編輯器對DHCP服務主配置文件進行編輯,添加一個“192.168.100.0”網段的配置文件,地址池可根據具體情況自己決定,主要是下一個TFTP服務器的路徑和引導程序的位置。
添加:
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”軟件包的配置文件,我將重要的配置文件標了出來。
輸入:rpm -ql syslinux |grep pxelinux.0
輸入:rpm -ql tftp-server
10.復制一份“pxelinux.0”文件到“/var/lib/tftpboot/”目錄下,并查看是否復制成功。
輸入:cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
輸入:ls /var/lib/tftpboot/
11.用vim編輯器對TFTP服務的配置文件進行編輯,將“disable”后的“yes”改為“no”,開啟TFTP服務。
輸入:vim /etc/xinetd.d/tftp
12.安裝FTP服務所需軟件包。
輸入:yum install vsftpd -y
13.進入到FTP服務的站點目錄下,新建一個centos7目錄。
輸入:cd /var/ftp/
輸入:mkdir centos7
14.將PXE客戶端所需要的光盤鏡像掛載到剛才創建的centos7目錄下,并查看掛載信息(你也可以直接復制過去)。
輸入:mount /dev/sr0 /var/ftp/centos7/
輸入:df -h
15.進入到“centos7/images/pxeboot/”目錄下(可以一步直接進入),將文件“initrd.img”和“vmlinuz”復制到“/var/lib/tftpboot/”目錄下。
輸入:cd centos7/images/pxeboot/
輸入:cp initrd.img vmlinuz /var/lib/tftpboot/
16.查看一下“ /var/lib/tftpboot/”目錄,已經有了三個文件了,其中“pxelinux.0”是引導程序文件,“vmlinuz”是壓縮內核文件,“initrd.img”是系統初始化文件。現在還差一個默認的啟動菜單文件,所以我們直接進入“/var/lib/tftpboot/”目錄,創建一個目錄“pxelinux.cfg”,然后在目錄“pxelinux.cfg”內新建一個文件“default”。
輸入:ls /var/lib/tftpboot/
輸入:cd /var/lib/tftpboot/
輸入:mkdir pxelinux.cfg
輸入:cd pxelinux.cfg/
輸入:vim default
17.在“default”文件中,輸入以下內容。
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.關閉防火墻和增強性安全功能,同時開啟DHCP、TFTP、FTP服務。
輸入:systemctl stop firewalld.service
輸入:setenforce 0
輸入:systemctl start dhcpd
輸入:systemctl start tftp
輸入:systemctl start vsftpd
19.咱們新建一個虛擬機,具體配置如下圖,注意網絡為僅主機模式。
20.打開新建的虛擬機作為PXE客戶機,選擇網絡驅動。
21.客戶機會獲取到DHCP服務分配的IP地址,然后啟動引導程序,加載默認的啟動菜單。此時需要回車才會繼續。
22.在回車后,稍作等待就會進入系統安裝的設置界面。
23.我們可以看到PXE遠程安裝服務,在安裝過程中任需要人工進行設置,而我們需要的是無人值守安裝,那么我們可以配置“kickstart”程序。首先安裝一個“system-config-kickstart”軟件包。
輸入:yum install system-config-kickstart -y
24.我們進入圖形化界面(可以用“init 5”命令進入),進入Kickstart的配置面板。
25.基本配置,設置好默認語言和時區,同時設置root用戶密碼,勾選安裝后重啟。
26.安裝方法,選擇FTP,同時輸入FTP服務器的路徑和存放鏡像文件的目錄。
27.引導裝載程序選項,勾選安裝引導裝載程序即可。GRUB密碼也可以設置,這樣系統會更加安全。
28.分區信息,點擊添加分別設置“/boot”、“/home”、“swap”、“/”等分區的大小。注意根分區“/”不用設置大小,直接勾選使用磁盤全部未使用空間即可。
29.網絡配置,添加一塊ens33網卡,網絡類型默認的DHCP模式即可。
30.防火墻配置,禁用SELinux。
31.安裝后腳本,選擇使用解釋程序,輸入“/bin/bash”即可。
32.保存配置好的文件,將文件“ks.cfg”保存到FTP服務的站點目錄”/var/ftp“下。
33.我們先進入root的家目錄,用vim編輯器進入“anaconda-ks.cfg”文件,這是“ks.cfg”的模板文件,我們將其中的安裝包命令復制,粘貼到“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遠程安裝一樣,不過這次不需要在手動設置了,系統會自動執行我們在“ks.cfg”文件中配置的內容。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。