Linux就該這麼學 | 第19章 部署“無人值守安裝系統”服務

剛入職的運維新手經常會被要求去做一些安裝Linux系統的工作。如果按照第 1 章中所講解的“用光盤鏡像來安裝Linux操作系統”,其效率會相當低下。

本章將介紹可以實現無人值守安裝服務的PXE+Kickstart 服務程序,並帶領大家動手安裝部署 PXE + TFTP + FTP + DHCP + Kickstart 等服務程序,從而搭建出一套可以批量安裝 Linux 系統的無人值守安裝系統。在學完本章內容之後,運維新手就可以避免枯燥乏味的重複性工作,大大提升Linux系統安裝的效率。

一、無人值守安裝系統

1、爲什麼需要無人值守安裝系統?

使用光盤鏡像來安裝 Linux 系統,坦白講,該方法適用於只安裝少量 Linux 系統的情況。如果生產環境中有數百臺服務器都需要安裝系統,這種方式就不合時宜了。

這時,我們就需要使用 PXE + TFTP +FTP + DHCP + Kickstart 服務搭建出一個無人值守安裝系統。這種無人值守安裝系統可以自動地爲數十臺服務器安裝系統,這一方面將運維人員從重複性的工作中解救出來,也大大提升了系統安裝的效率。

2、無人值守安裝系統的工作流程

3、什麼是 PXE ?

PXE(Preboot eXecute Environment,預啓動執行環境)是由 Intel 公司開發的技術,可以讓計算機通過網絡來啓動操作系統(前提是計算機上安裝的網卡支持 PXE 技術),主要用於在無人值守安裝系統中引導客戶端主機安裝 Linux 操作系統。

4、什麼是 Kickstart ?

Kickstart 是一種無人值守的安裝方式,其工作原理是預先把原本需要運維人員手工填寫的參數保存成一個ks.cfg 文件,當安裝過程中需要填寫參數時則自動匹配 Kickstart 生成的文件。

所以只要Kickstart 文件包含了安裝過程中需要人工填寫的所有參數,那麼從理論上來講完全不需要運維人員的干預,就可以自動完成安裝工作。

TFTP、FTP 以及 DHCP 服務程序的配置與部署,在前面章節中已經詳細講解過,這裏不再贅述。

5、數據資源如何傳輸到客戶端主機上?

由於當前的客戶端主機並沒有完整的操作系統,也就不能完成 FTP 協議的驗證了,所以需要使用 TFTP 協議幫助客戶端獲取引導及驅動文件。

vsftpd 服務程序用於將完整的系統安裝鏡像通過網絡傳輸給客戶端。當然,只要能將系統安裝鏡像成功傳輸給客戶端即可,因此也可以使用 httpd 來替代 vsftpd 服務程序。

二、部署無人值守安裝服務

1、配置 DHCP 服務程序

DHCP 服務程序用於爲客戶端主機分配可用的 IP 地址,而且這是服務器與客戶端主機進行文件傳輸的基礎,因此我們先行配置 DHCP 服務程序。

1)配置“無人值守系統”服務端的 IP 爲 192.168.10。並關閉虛擬機自身的 DHCP 服務,避免虛擬機自帶的 DHCP 服務對我們手動部署的 DHCP 服務造成干擾。

2)安裝 DHCP 服務程序包

yum  install  dhcp

3)配置 dhcpd 服務

允許了 BOOTP 引導程序協議,旨在讓局域網內暫時沒有操作系統的主機也能獲取靜態 IP地址;在配置文件的最下面加載了引導驅動文件 pxelinux.0(這個文件會在下面的步驟中創建),其目的是讓客戶端主機獲取到 IP 地址後主動獲取引導驅動文件,自行進入下一步的安裝過程。

vim  /etc/dhcp/dhcpd.conf
systemctl  restart  dhcpd
systemctl  enable  dhcpd

2、配置 TFTP 服務程序

在前面章節中我們已經學習過 vsftpd服務 和 TFTP 服務。vsftpd 是一款功能豐富的文件傳輸服務程序,允許用戶以匿名開放模式、本地用戶模式、虛擬用戶模式來進行訪問認證。但是,當前的客戶端主機還沒有安裝操作系統,該如何進行登錄認證呢?

而 TFTP 作爲一種基於 UDP 協議的簡單文件傳輸協議,不需要進行用戶認證即可獲取到所需的文件資源。接下來配置 TFTP 服務程序,爲客戶端主機提供引導及驅動文件。當客戶端主機有了基本的驅動程序之後,再通過 vsftpd 服務程序將完整的光盤鏡像文件傳輸過去。

1)安裝 TFTP 服務程序包

yum  install  tftp-server

2)關於 xinetd 服務

TFTP 是一種非常精簡的文件傳輸服務程序,它的運行和關閉是由 xinetd 網絡守護進程服務來管理的。xinetd 服務程序會同時監聽系統的多個端口,然後根據用戶請求的端口號調取相應的服務程序來響應用戶的請求。

3)配置 TFTP 服務程序(xinetd 服務)

開啓 TFTP 服務程序,只需在 xinetd 服務程序的配置文件中把 disable 參數改成 no 就可以了。

vim  /etc/xinetd.d/tftp
systemctl  restart  xinetd
systemctl  enable  xinetd

4)修改 firewall 防火牆策略

TFTP 服務程序默認使用的是 UDP 協議,佔用的端口號爲 69,所以在生產環境中還需要在 firewalld 防火牆管理工具中寫入使其永久生效的允許策略,以便讓客戶端主機順利獲取到引導文件。

firewall-cmd  --permanent  --add-port=69/udp
firewall-cmd  --reload

3、配置 SYSLinux 服務程序

1)關於 SYSLinux 服務程序

SYSLinux 是一個用於提供引導加載的服務程序。與其說 SYSLinux 是一個服務程序,不如說我們更需要它裏面的引導文件,在安裝好 SYSLinux 服務程序軟件包後,/usr/share/syslinux 目錄中會出現很多引導文件。

2)安裝 SYSLinux 服務程序

yum  install  syslinux

3)提取引導文件至 TFTP 服務的默認目錄中去

我們需要把 SYSLinux 提供的引導文件(即上述提到的文件 pxelinux.0)複製到 TFTP 服務程序的默認目錄中,這樣客戶端主機就能夠順利地獲取到引導文件了。

另外在 RHEL7 系統光盤鏡像中也有一些我們需要調取的引導文件。在確認光盤鏡像已經被掛載到/media/cdrom 目錄後,使用 cp 命令將光盤鏡像中自帶的一些引導文件也複製到 TFTP 服務程序的默認目錄中。

cd  /var/lib/tftpboot
cp  /usr/share/syslinux/pxelinux.0  .
cp  /media/cdrom/images/pxeboot/{vmlinuz,initrd.img}   .
cp  /media/cdrom/isolinux/{vesamenu.c32,boot.msg}   .

4)提取開機菜單文件並進行相關配置

在 TFTP 服務程序的目錄中新建 pxelinux.cfg 目錄,雖然該目錄的名字帶有後綴,但依然也是目錄。將系統光盤中的開機選項菜單複製到該目錄中,並命名爲 default,這個 default 文件就是開機時的選項菜單。

cd  /var/lib/tftpboot
mkdir  pxelinux.cfg
cp  /media/cdrom/isolinux/isolinux.cfg   ./pxelinux.cfg/default

默認的開機菜單中有兩個選項,要麼是安裝系統,要麼是對安裝介質進行檢驗。既然我們已經確定採用無人值守的方式來安裝Linux系統,現在我們來編輯這個 default 文件:

vim  cd  /var/lib/tftpboot/pxelinux.cfg/default

把第 1 行的 default 參數修改爲 linux,這樣系統在開機時就會默認執行那個名稱爲 linux 的選項了。

在 64 行,我們把默認的光盤鏡像安裝方式修改成 FTP 文件傳輸方式,並指定好光盤鏡像的獲取地址以及 Kickstart 應答文件的獲取路徑。

4、配置 vsftpd 服務程序

在我們這套無人值守安裝系統的服務中,光盤鏡像資源是通過 FTP 協議傳輸的,因此勢必要用到 vsftpd 服務程序。

當然,也可以使用 httpd 服務程序來提供 Web 網站訪問的方式,只要能確保將光盤鏡像順利傳輸給客戶端主機即可。如果打算使用 Web 網站服務來提供光盤鏡像,一定記得將上述 /var/lib/tftpboot/pxelinux.cfg/default 配置文件中的光盤鏡像獲取網址和 Kickstart 應答文件獲取網址修改一下。

1)安裝 vsftpd 服務程序包

yum  install  vsftpd
systemctl  restart  vsftpd
systemctl  enable  vsftpd

在配置文件修改正確之後,一定將相應的服務程序添加到開機啓動項中,這樣無論是在生產環境中還是在紅帽認證考試中,都可以在設備重啓之後依然能提供相應的服務

2)提取光盤鏡像資源至 vsftpd 服務的工作目錄中

在確認系統光盤鏡像已經正常掛載到/media/cdrom 目錄後,把目錄中的光盤鏡像文件全部複製到 vsftpd 服務程序的工作目錄中。這個過程大約需要 3~5 分鐘。

cp  -r  /media/cdrom/*   /var/ftp

3)修改 firewalld 防火牆策略

在 firewalld 防火牆管理工具中寫入“使 FTP 協議永久生效”的允許策略,然後在 SELinux 中放行 FTP 傳輸。

firewall-cmd  --permanent  --add-service=ftp
firewall-cmd  --reload
setsebool  -P  ftpd_connect_all_unreserved=on

5、創建 KickStart 應答文件

1)關於“無人值守安裝Linux系統”的進一步理解

使用 PXE + Kickstart 部署的是一套“無人值守安裝系統服務”,而不是“無人值守傳輸系統光盤鏡像服務”,因此還需要讓客戶端主機能夠一邊獲取光盤鏡像,還能夠一邊自動幫我們填寫好安裝過程中出現的選項

簡單來說,如果生產環境中有 100 臺服務器,它們需要安裝相同的系統環境,那麼在安裝過程中單擊的按鈕和填寫的信息也應該都是相同的。那麼,爲什麼不創建一個類似於備忘錄的需求清單呢?這樣,在無人值守安裝系統時,可以從這個需求清單中找到相應的選項值,從而免去了手動輸入之苦,更重要的是,也徹底解放了人的干預,徹底實現無人值守自動安裝系統,而不是單純地傳輸系統光盤鏡像。

2)關於 Kickstart 文件

Kickstart 其實並不是一個服務程序,而是一個應答文件。Kickstart 應答文件中包含了系統安裝過程中需要使用的選項和參數信息,系統可以自動調取這個應答文件的內容,從而徹底實現了無人值守安裝系統。

3)獲取 Kickstart 應答文件

那麼,該去哪裏找到這個 Kickstart 文件呢?其實在 root 管理員的家目錄中有一個名爲 anaconda-ks.cfg 的文件,它就是應答文件。

下面把這個應答文件複製到 vsftpd 服務程序的工作目錄中(在開機選項菜單的配置文件中已經定義了該文件的獲取路徑,也就是 vsftpd 服務程序數據目錄中的 pub 子目錄中)。

再使用 chmod 命令設置該文件的權限,確保所有人都有可讀的權限,以保證客戶端主機可以順利獲取到應答文件及裏面的內容。

cp  ~/anaconda-ks.cfg   /var/ftp/pub/ks.cfg
chmod  +r  /var/ftp/pub/ks.cfg

4)配置 Kickstart 應答文件

如果覺得系統默認自帶的Kickstart 應答文件參數較少,不能滿足生產環境的需求,則可以通過 Yum軟件倉庫來安裝 system-config-kickstart 軟件包。這是一款圖形化的 Kickstart 應答文件生成工具,可以根據自己的需求生成自定義的 Kickstart應答文件,然後把生成的文件放到/var/ftp/pub 目錄中並將其名字修改爲 ks.cfg 即可。

三、測試 “PXE + Kickstart 無人值守安裝系統” 服務

上述我們已經完成了 PXE + Kickstart 無人值守安裝系統的服務,現在就可以使用它來爲客戶端主機安裝 Linux 系統了。

下面我們在客戶端主機上安裝 VM 虛擬機,在虛擬機環境中測試“192.168.10.10服務器上的無人值守安裝系統”服務。

1)第1步:先把客戶端主機的虛擬機的網卡模式設定成與服務端一致的“僅主機模式”,否則兩臺主機之間將無法進行通信。客戶端主機的硬件配置選項並沒有強制性要求。

2)第2步:在客戶端的虛擬機中點擊“新建虛擬機嚮導”,選擇“典型(推薦)”模式來安裝。

3)第3步:把虛擬機操作系統的安裝來源設置爲“稍後安裝操作系統”,這樣做的目的是讓虛擬機從網絡中(192.168.10.10服務端)獲取Linux系統安裝鏡像資源。

4)第4步:指定將要安裝的操作系統的類型爲 " Linux -> RedHat Enterprise Linux 7 64位";指定系統在本地主機上的安裝路徑;自定義虛擬機的系統名稱;指定系統要使用多大的磁盤容量,比如20G。

5)第5步:自定義硬件,把將要安裝的Linux系統的“網絡適配器”設備設置爲“僅主機模式”(這個步驟非常重要),然後單擊“確定”按鈕。

至此,用於測試的客戶端主機(虛擬機)和“PXE + Kickstart 無人值守安裝系統”服務端都已經準備好了。

6)第6步:開始自動爲客戶端主機(測試用的虛擬機)安裝Linux系統

在生產環境中,只需要將配置好的“PXE + Kickstart 無人值守安裝系統”服務器上架,接通服務器和客戶端主機之間的網線,然後啓動客戶端主機(測試用的虛擬機)即可。

接下來就會自動開始傳輸光盤鏡像文件,並進行自動安裝了。期間完全無須人工干預,直到安裝完畢時才需要運維人員進行簡單的初始化工作。

可見,當生產環境工作中有數百臺服務器需要批量安裝Linux系統時,使用無人值守安裝系統是非常有必要的。

本章複習題


本章 END 2019-01-17

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章