1. 程式人生 > >Linux全自動網路安裝 —— PXE

Linux全自動網路安裝 —— PXE

前言:

最近整理一些以前的學習筆記。
過去都是儲存在本地,此次傳到網路留待備用。


 

網路裝機的優勢:

1).規模化:同時裝配多臺主機;

2).自動化:自動裝系統、配置等各種服務;

3).遠端實現:不需要光碟、U盤等物理安裝介質。


 

PXE網路:

  • PXE = Pro-boot eXecution Environment

    • 預啟動執行環境,在作業系統之前執行;
    • 可用於遠端安裝。
  • 工作模式:

    • PXE client 整合在網絡卡的啟動晶片中;
    • 當計算機引導時,從網絡卡晶片中把PXE client調入記憶體執行,獲取PXE server配置、顯示選單,根據使用者選擇將遠端載入程式下載到本機執行。
  • 需要的服務元件:

    • DHCP服務:分配ip地址、定位載入程式;

      • 獲取ip
      • 指定下一個伺服器
      • 指定引導檔案
    • TFTP服務:提供載入程式下載;

      • pxelinux.0(引導檔案)
      • pxelinux.cfg/default(選單檔案)
      • vesamenu.32(圖形模組)
      • splash.png(背景圖)
      • vmlinuz(核心)
      • initrd.img(驅動)
    • HTTP服務:(或FTP/NFS),提供yum安裝源。

      • 軟體安裝yum源
      • kickstart(自動應答檔案),用於自動安裝
  • 客戶機要求:

    • 網絡卡晶片必須支援PXE協議;
    • 主機板支援網絡卡啟動。

 

搭建PXE網路裝機伺服器

  • 伺服器地址: 192.168.4.7  

一、配置dhcp服務的pxe設定:

1.安裝軟體包:dhcp

]# yum -y install dhcp

2.編輯配置檔案:/etc/dhcp/dhcpd.conf

]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.4.0 netmask 255.255.255.0 {      #宣告網段、子網掩碼
    range 192.168.4.10 192.168.4.100;             #ip範圍
    option domain-name-servers 8.8.8.8;           #域名伺服器
    option routers 192.168.4.254;                 #路由地址
    next-server 192.168.4.7;                      #指定下一個執行伺服器(PXE伺服器)的地址,本機
    filename "pxelinux.0";                        #下一個伺服器的引導檔案,生成後預設pxelinux.0
}

3.重啟服務:dhcpd

]# systemctl restart dhcpd      #必須保證伺服器ip在dhcp的範圍內

4.確認結果

]# netstat -utnap | grep dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 8380/dhcpd

5.dhclient測試(客戶端)

臨時配置/測試,建議採用dhclient
        - 格式:dhclient -d [網路介面]
        - 選項:-d 除錯模式
]# dhclient -d eth0

 

二、搭建httpd服務:

  • 提供yum源

1.安裝軟體包:httpd

]# yum -y install httpd

2.重啟、自啟服務:

]# systemctl restart httpd
]# systemctl enable httpd

3.共享光碟內容:掛載

]# mkdir /var/www/html/rhel7
]# mount /dvd/cdrom /var/www/html/rhel7

 

三、搭建tftp服務:

1.安裝軟體包:tftp-server

]# yum -y install tftp-server

2.重啟、開機自啟服務:

]# systemctl restart tftp

3.部署PXE啟動程式:

3.1).部署 引導檔案:pxelinux.0

  • pxelinux.0:網絡卡引導檔案(安裝說明書)二進位制的檔案,安裝一個軟體可以生成。
    ]# yum provides */pxelinux.0                                #查詢產生pxelinux.0的軟體包
    ]# yum -y install sysliunx                                  #安裝查詢出的軟體包
    ]# rpm -ql syslinux | grep pxelinux.0                       #查詢pxelinux.0的路徑
    ]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/     #複製引導檔案到tftpboot
    

3.2).部署 選單檔案:isolinux.cfg

]# mkdir /var/lib/tftpboot/pxelinux.cfg/
]# cp /dvd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
    #複製光碟選單檔案到tftp的預設目錄
]# chmod u+w /var/lib/tftpboot/pxelinux.cfg/default         #給予檔案寫的權力

3.3).部署 圖形模組:vesamenu.c32(圖形模組) 、 splash.png(背景圖片)

]# cp /dvd/isolinux/vesamenu.c32 /dvd/isolinux/splash.png /var/lib/tftpboot

3.4).部署 啟動核心 及 驅動程式:vmlinuz(啟動核心)、initrd.img(驅動程式)

]# cp /dvd/isolinux/vmlinuz /dvd/isolinux/initrd.img /var/lib/tftpboot

3.5).修改選單檔案:/var/lib/tftpboot/pxelinux.cfg/default

]# vim /var/lib/tftpboot/pxelinux.cfg/default
.. ..
default vesamenu.c32            #預設載入圖形的模組
timeout 600                     #讀秒時間600毫秒
.. ..
menu background 背景圖片名      #圖片大小640*480
menu title 標題
.. ..
label linux                     #選單
    menu label ^選項,選單內容       #顯示選單內容
    kernel vmlinuz                   #載入核心
    append initrd=initrd.img         #載入驅動
  • 初步測試:

    • 新建一臺虛擬機器,選擇PXE網路引導安裝

 

四、配置無人值守安裝,應答檔案的生成:ks.cfg

1.安裝圖形工具:system-config-kickstart

]# yum -y install system-config-kickstart

2.執行工具檢視【軟體包選擇】,檢視是否有軟體包:

]# system-config-kickstart
   # 如果沒有,需要修改本機yum配置檔案的 [源標識] 為 [development]
]# vim /etc/yum.repos.d/dvd.repo

3.執行工具 修改配置:

]# system-config-kickstart

4.儲存配置到/root 並退出:

 

五、共享ks.cfg應答檔案,利用httpd服務:

]# cp /root/ks.cfg /var/www/html

 

六、修改選單檔案,指定ks.cfg應答檔案:

]# vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
    menu label  選項
    kernel  vmlinuz
    append initrd=initrd.img  ks=http://192.168