PXE實現kickstart無人值守安裝
PXE(Preboot execute environment)是一種能夠讓計算機通過網路啟動的引導方式,只要網絡卡支援 PXE 協議即可使用。Kickstart 是一種無人值守的安裝方式,工作原理就是預先把原本需要運維人員手工填寫的引數儲存成一個 ks.cfg檔案,當安裝過程中出現需要填寫引數時則自動匹配 Kickstart 生成的檔案,所以只要 Kickstart 檔案包含了安裝過程中所有需要人工填寫的引數,那麼運維人員就完全不需要干預,等待安裝完畢即可。 簡單文字傳輸協議 TFTP(Trivial File Transfer Protocol)是一種基於 UDP 協議的傳輸協議,其與前面學習的 vsftpd服務程式的 FTP 協議有很大不同,TFTP 協議不具備 FTP 的許多功能(例如列出目錄,密碼認證等等),但 TFTP 協議配置非常簡單,而且資源消耗更低,非常適合傳輸不敏感的檔案。
環境介紹: 系統版本:紅帽 RHEL7 IP: 192.168.4.5 DNS伺服器:192.168.4.254
一 搭建DHCP 服務(分配IP地址、定位載入程式) 1 安裝dhcp軟體包
[[email protected] ~]# yum -y install dhcp
2 修改配置檔案:
[[email protected] ~]# vim /etc/dhcp/ subnet 192.168.4.0 netmask 255.255.255.0 { #分配的網段 range 192.168.4.100 192.168.4.200; #自動分配IP地址的範圍 option domain-name-servers 192.168.4.5; #本機為DNS伺服器 option routers 192.168.4.254; #閘道器地址 default-lease-time 600; max-lease-time 7200; next-server 192.168.4.5; #指定下一個伺服器地址 filename "pxelinux.0"; #指定網絡卡引導檔名稱 }
3 重啟服務並設定開機自啟:
[[email protected] ~]# systemctl restart dhcpd
[[email protected] ~]# systemctl enable dhcpd
二 搭建TFTP服務(提供載入程式下載) 1 安裝軟體包tftp-server:
[[email protected] ~]# yum -y install tftp-server
2 重起tftp服務:
[[email protected] ~]# systemctl restart tftp
三 搭建HTTP服務: 1 安裝軟體包阿帕奇:
[[email protected] ~]# yum -y install httpd
2 將光碟內容放入DocumentRoot(/var/www/html):
[[email protected] ~]# mkdir /var/www/html/rhel7
[[email protected] ~]# mount /dev/cdrom /var/www/html/rhel7
[[email protected] ~]# ls /var/www/html/rhel7
addons GPL media.repo RPM-GPG-KEY-redhat-release
EFI images Packages TRANS.TBL
EULA isolinux repodata
extra_files.json LiveOS RPM-GPG-KEY-redhat-beta
[[email protected] ~]# systemctl restart httpd
[[email protected] ~]# firefox 192.168.4.7/rhel7 #檢視ISO映象檔案
四 在tftp上部署pxelinux.0 以及各種啟動相關的檔案(位置: /var/lib/tftpboot/) 1.部署pxelinux.0
[[email protected] ~]# yum provides */pxelinux.0 #查詢倉庫中那個軟體包會產生這個檔案
源 :development
匹配來源:
檔名 :/usr/share/syslinux/pxelinux.0
syslinux-4.05-13.el7.x86_64 : Simple kernel loader which boots from a FAT
[[email protected] ~]# yum -y install syslinux #下載syslinux軟體包
[[email protected] ~]# rpm -ql syslinux | grep pxelinux.0 #查詢pxelinux.0的安裝清單
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[[email protected] ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #將引導檔案放TFTP目錄下
[[email protected] ~]# ls /var/lib/tftpboot/
pxelinux.0
2 部署相關啟動檔案:
[[email protected] ~]# cd /var/www/html/rhel7
[[email protected] rhel7]# ls
addons GPL media.repo RPM-GPG-KEY-redhat-release
EFI images Packages TRANS.TBL
EULA isolinux repodata
extra_files.json LiveOS RPM-GPG-KEY-redhat-beta
[[email protected] rhel7]# cd isolinux/
[[email protected] isolinux]# ls
boot.cat grub.conf isolinux.bin memtest TRANS.TBL vesamenu.c32
boot.msg initrd.img isolinux.cfg splash.png upgrade.img vmlinuz
[[email protected] isolinux]# cp vesamenu.c32 vmlinuz splash.png initrd.img /var/lib/tftpboot/
[[email protected] isolinux]# ls /var/lib/tftpboot/
initrd.img pxelinux.0 splash.png vesamenu.c32 vmlinuz
# 圖形的模組:vesamenu.c32 背景圖片:splash.png
# 啟動核心:vmlinuz 驅動程式:initrd.img 引導檔案:pxelinux.0
3 部署選單檔案:
[[email protected] isolinux]# mkdir /var/lib/tftpboot/pxelinux.cfg
[[email protected] isolinux]# cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #將選單檔案放入
[[email protected] isolinux]# chmod u+w /var/lib/tftpboot/pxelinux.cfg/default #為選單檔案設定寫許可權
[[email protected] isolinux]# vim /var/lib/tftpboot/pxelinux.cfg/default #配置選單檔案
#開啟行號
1 default vesamenu.c32 #預設載入圖形的模組
2 timeout 600 #讀秒時間 1/10
10 menu background splash.png #指定背景圖片
11 menu PXE Server ! #選單顯示的標題(自定義)
61 label linux
62 menu label Install RHEL7 #選項內容
63 menu default #讀秒結束後預設選擇
64 kernel vmlinuz #載入核心
65 append initrd=initrd.img #載入驅動
五 實現無人值守安裝,生成應答檔案 安裝一個圖形的工具(system-config-kickstart)進行生成
[[email protected] isolinux]# cd
[[email protected] ~]# yum -y install system-config-kickstart
[[email protected] ~]# system-config-kickstart # 執行圖形工具
1 根據需要確認預設語言、時區,設定根口令、磁碟分割槽規劃等基本資訊
2 在安裝方法部分,選擇“執行新安裝”,並正確設定HTTP安裝源的訪問地址資訊 3 在分割槽資訊部分,選擇清除主引導記錄、刪除所有現存分割槽、初始化磁碟標籤,並手動新增/boot 200MB、SWAP分割槽 2000MB、/分割槽 所有剩餘空間 4 在網路配置部分,確認已新增第一塊網絡卡eth0,設為DHCP自動獲取 5 在防火牆配置部分,禁用SELinux、禁用防火牆 6 在軟體包選擇部分,根據客戶機的實際需要定製。比如若要使用圖形桌面環境,建議將GNOME相關的包勾選上,系統選擇基本。 7 在安裝後腳本部分,新增經驗證的可執行語句,可自由選擇需要新增的功能。 8 設定完成後將此應答檔案ks.cfg 儲存到/root目錄下。
六 共享ks應答檔案: 1 將ks.cdg 檔案複製到Documentroot 下
[[email protected] ~]# cp /root/ks.cfg /var/www/html/
[[email protected] ~]# ls /var/www/html/
ks.cfg rhel7
[[email protected] ~]# firefox 192.168.4.5/ks.cfg #測試
2 通過選單檔案進行指定
[[email protected] ~]# vim /var/lib/tftpboot/pxelinux.cfg/default
label linux
menu label Install RHEL7
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.4.5/ks.cfg
至此配置工作全部完成。