天天看點

PXE自動安裝Linux

許多情況下我們手動安裝作業系統是不現實的,尤其是當數量較多的時候。這個時候就要借助其他的技術 了。PXE就是其中的一種。

PXE全稱是:Preboot Excution Environment 預啟動執行環境是由Intel公司研發的基于Client/Server的網絡模式,支援遠端主機通過網絡從遠端伺服器下載下傳映像,并由此支援通過網絡啟動作業系統 PXE可以引導和安裝Windows,linux等多種作業系統,這裡隻說Linux不說Windows。

PXE的具體工作有些複雜,不過多介紹,有興趣的可以自行百度,這裡隻說實作。以下全部基于虛拟機實作。VM14,Cent7.5

1.環境準備

2.檢查防火牆和SELinux的設定,確定都是關閉的

3.安裝所需的必要軟體包并開啟對應的服務

4.準備安裝源

5.準備自動應答檔案,并放到可以被通路到的地方

6.配置DHCP服務并啟動

7.将必要的檔案複制到相關目錄

8.修改啟動菜單,以及一些其他的配置檔案

8.啟動測試

首先準備至少兩台虛拟機,其中一台作為伺服器使用。(基本所有配置操作都是在伺服器上用戶端機器不需要配置。)還需要至少一個安裝源(系統安裝鏡像檔案)

1.将兩台虛拟機網卡配置為僅主機模式(主要是和外網隔離,以面影響實體機的DHCP服務)

2.關閉VMware的DHCP服務

在VMware主界面點選“編輯→虛拟網絡編輯器”

在打開的界面中選中僅主機類型的連接配接并勾掉下面的使用本地DHCP服務(如果勾選框灰色,點選更改設定給他管理者權限)如圖:

PXE自動安裝Linux

3.給伺服器配置設定一個IP位址,位址建議為靜态位址。配置檔案如下:

4.編輯Win下的虛拟網卡配置以便和虛拟機可以通信

打開控制台→網絡和共享中心→更改擴充卡設定

通常僅主機的連接配接名稱為VMnet1

PXE自動安裝Linux

位址可以随意配置設定,但確定此處位址是上一步配置設定的位址的網關。如果在虛拟機中可以ping通網關則說明配置沒有問題。

確定SELinux和防火牆處于關閉狀态。

将/etc/selinux/config檔案中的SELINUX=xxx改為SELINUX=disabled并重新開機。

可以通過指令getenforce檢視,如果是disabled或permissive即為關閉狀态

執行以下兩條指令確定關閉防火牆

出于友善,軟體安裝全部使用yum進行安裝,如果沒有yum源的請自行配置。

執行以下指令安裝相關軟體并啟動服務,DHCP由于需要另外修改配置檔案先跳過

使用ss -tan 确認TCP80端口已開啟

使用ss -unl 确認UDP69端口已開啟

此次實驗我們通過HTTP作為安裝源,是以,隻要将我們準備好的安裝鏡像挂載到HTTP目錄下可以通路即可。具體目錄是/var/www/html/ 為了友善擴充還可以在此目錄下建立幾個檔案夾,以存放不同版本的系統檔案。

具體實作:

1.使用mkdir -p /var/www/html/Centos/7建立檔案夾

2.将CD光牒挂載到/var/www/html/Centos/7目錄下

3.在/etc/fstab檔案中添加自動挂載資訊,通常為

/etc/sr0 /var/www/html/Centos/7 iso9660 default 0 0

4.使用df -h确認挂載資訊

5.在主機使用浏覽器通路http://192.168.11.2/Centos/7 确認可以看到挂載的安裝檔案

自動應答檔案是整個環節相當重要的部分(其實每一部分都很很重要)自動應答檔案的生成可以通過在圖形界面下安裝system-config-kickstart包使用這個工具在圖形界面下生成,或者,系統安裝完成後預設在root家目錄有一個叫anaconda-ks.cfg的檔案,也可以直接修改這個檔案。由于圖形界面比較簡單,這裡直接修改anaconda-ks.cfg檔案。其中以#開頭的行表示注釋,如果你沒有修改過此檔案中的内容,那麼應該内容如下(中文為後加):

注:最小化安裝檔案内容,如果是圖形界面,内容會有些許不同

看起來很多内容,也有可能有很多不一樣,不過沒有關系,許多内容并不需要了解,需要改的地方并不多

大概以下幾項修改就可以了:

1.安裝媒體即把cdrom改為以下内容

2.防火牆和SELinux根據自己的需要選擇開啟或關閉

3.如果沒有zerombr和clearpart --all --initlabel,手動添加如果前面有#,去掉

4.去掉分區資訊前的#

5.根據自己的需要選擇需要安裝的包,最小化隻有一個core即可

6.将檔案儲存之後放到可以被HTTP通路到的地方,如/var/www/html/,確定檔案權限為644

7.在主機通路http://192.168.11.2/anaconda-ks.cfg 如果可以成功通路,說明此步驟OK

手動修改應答檔案有時候可能并不是一個明智的選擇,如果沒有把握,使用圖形工具是更好的選擇

需要注意的是,注意應答檔案和要安裝系統的對應,比如安裝6的系統請使用6生成應答檔案

預設情況下DHCP服務在安裝完成之後配置檔案是空的,也是以DHCP服務必須進行一定的配置才可以啟動,DHCP的服務配置檔案路徑是:/etc/dhcp/dhcpd.conf,通過一個示例來看一下配置檔案的 格式

網段:伺服器可以配置設定的位址的網段,可以指定多個

掩碼:網段對應的掩碼

預設租期:以秒為機關預設的IP位址的租期

最長租期:用戶端可以請求一個租期,此項設定用于對此進行限制以秒為機關

位址池:伺服器在可配置設定網段中可以配置設定的IP位址的範圍

DNS:用于客戶機從DHCP伺服器擷取的DNS位址

如下一個示例:

對于一個DHCP伺服器以上内容足夠了,不過對于PXE還少了兩個重要的選項,

next-server 192.168.11.2

filename "pxelinux.0"

next-server用來指定TFTP伺服器的位置

filename用來指定要通路TFTP伺服器上的哪個檔案

也就是說在這裡我們的DHCP伺服器的配置檔案是這樣的

接下來使用systemctl start dhcpd啟動dhcp服務,使用ss -unl檢視67端口是會否已經開啟

TFTP的共享目錄在/var/lib/tftpboot/下,考慮到靈活性依舊可以給不同版本的系統單獨的目錄

這裡建立一個7的目錄

複制CD光牒目錄中isolinux下的initrd.img和vmlinuz到/var/lib/tftpboot/7目錄下

在共享目錄下建立一個名為pxelinux.cfg的檔案夾并将CD光牒目錄中isolinux下的isolinux.cfg複制到pxelinux.cfg目錄下并且命名為default

将/usr/share/syslinux/menu.c32複制到/var/lib/tftpboot目錄下,此檔案是菜單背景檔案

将/usr/share/syslinux/pxelinux.0複制到/var/lib/tftpboot目錄下

如果隻有一個系統,應該有5個檔案兩個目錄,結構如下

修改default檔案,從CD光牒複制過來的檔案有很多内容,不夠大部分我們并不需要,參考下面的内容就可以了

将另一台虛拟機網卡同樣配置為僅主機,網卡使用自動擷取IP。

最後,确認安裝源,以及應答檔案可以通路,且default檔案中路徑配置正确。

确認防火牆以及SELinux處于關閉狀态。

确認無誤的話就可以開機進行測試了。GOOD LUCK

繼續閱讀