1. 程式人生 > >PXE實現kickstart無人值守安裝

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

至此配置工作全部完成。