Linux全自動網路安裝 —— PXE
阿新 • • 發佈:2019-07-22
前言:
最近整理一些以前的學習筆記。
過去都是儲存在本地,此次傳到網路留待備用。
網路裝機的優勢:
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