天天看點

RHCSA 系列(十二): 使用 Kickstart 完成 RHEL 7 的自動化安裝

無論是在資料中心還是實驗室環境,linux 伺服器很少是獨立的機器,很可能有時你需要安裝多個以某種方式互相聯系的機器。假如你将在單個伺服器上手動安裝 rhel 7 所花的時間乘以你需要配置的機器數量,這将導緻你必須做出一場相當長的努力,而通過使用被稱為 kicksta 的無人值守安裝工具則可以避免這樣的麻煩。

在這篇文章中,我們将向你展示使用 kickstart 工具時所需的一切,以便在安裝過程中,不用你時不時地照看“處在襁褓中”的伺服器。

RHCSA 系列(十二): 使用 Kickstart 完成 RHEL 7 的自動化安裝

rhcsa: rhel 7 的自動化 kickstart 安裝

kickstart 是一種被用來執行無人值守作業系統安裝和配置的自動化安裝方法,主要被 rhel(以及其他 fedora 的副産品,如 centos,oracle linux 等)所使用。是以,kickstart 安裝方法可使得系統管理者隻需考慮需要安裝的軟體包組和系統的配置,便可以得到相同的系統,進而省去必須手動安裝這些軟體包的麻煩。

<a target="_blank"></a>

要執行 kickstart 安裝,我們需要遵循下面的這些步驟:

建立一個 kickstart 檔案,它是一個帶有多個預定義配置選項的純文字檔案。

将 kickstart 檔案儲存在可移動媒體上,如一個硬碟或一個網絡位置。kickstart 用戶端需要使用 <code>rhel-server-7.0-x86_64-boot.iso</code> 鏡像檔案,而你還需要可從一個網絡資源上擷取得到完整的 iso 鏡像<code>rhel-server-7.0-x86_64-dvd.iso</code> ,例如通過一個 ftp 伺服器的 http 服務形式(在我們目前的例子中,我們将使用另一個 ip 位址為 192.168.0.18 的 rhel 7 機器)。

開始 kickstart 安裝。

RHCSA 系列(十二): 使用 Kickstart 完成 RHEL 7 的自動化安裝

kickstart 配置工具

假如你指定安裝将通過 http,ftp,nfs 來執行,請確定伺服器上的防火牆允許這些服務通過。

盡管你可以使用紅帽的線上工具來建立一個 kickstart 檔案,但你還可以使用下面的代碼來作為參考手動地建立它。例如,你可以注意到,下面的代碼指定了安裝過程将使用英語環境,使用拉丁美洲鍵盤布局,并設定時區為 america/argentina/san_luis 時區:

<code>lang en_us</code>

<code>keyboard la-latin1</code>

<code>timezone america/argentina/san_luis --isutc</code>

<code>rootpw $1$5sotdvro$in4ktmx7omcow9huvwtfn0 --iscrypted</code>

<code>#platform x86, amd64, or intel em64t</code>

<code>text</code>

<code>url --url=http://192.168.0.18//kickstart/media</code>

<code>bootloader --location=mbr --append="rhgb quiet crashkernel=auto"</code>

<code>zerombr</code>

<code>clearpart --all --initlabel</code>

<code>autopart</code>

<code>auth --passalgo=sha512 --useshadow</code>

<code>selinux --enforcing</code>

<code>firewall --enabled</code>

<code>firstboot --disable</code>

<code>%packages</code>

<code>@base</code>

<code>@backup-server</code>

<code>@print-server</code>

<code>%end</code>

在上面的線上配置工具中,在選擇以 http 來作為安裝源後,設定好在安裝過程中使用 192.168.0.18 來作為 http 伺服器的位址,<code>/kickstart/tecmint.bin</code> 作為 http 目錄。

在上面的 kickstart 示例檔案中,你需要特别注意

這個目錄是你展開 dvd 或 iso 安裝媒體内容的地方。在執行解壓之前,我們将把 iso 安裝檔案作為一個回環裝置挂載到 /media/rhel 目錄下:

<code># mount -o loop /var/www/html/kickstart/rhel-server-7.0-x86_64-dvd.iso /media/rhel</code>

RHCSA 系列(十二): 使用 Kickstart 完成 RHEL 7 的自動化安裝

挂載 rhel iso 鏡像

接下來,複制 /media/rhel 中的全部檔案到 /var/www/html/kickstart/media 目錄:

<code># cp -r /media/rhel /var/www/html/kickstart/media</code>

這一步做完後,/var/www/html/kickstart/media 目錄中的檔案清單和磁盤使用情況将如下所示:

RHCSA 系列(十二): 使用 Kickstart 完成 RHEL 7 的自動化安裝

kickstart 媒體檔案

現在,我們已經準備好開始 kickstart 安裝了。

不管你如何選擇建立 kickstart 檔案的方式,在執行安裝之前檢查下這個檔案的文法是否有誤總是一個不錯的主意。為此,我們需要安裝 pykickstart 軟體包。

<code># yum update &amp;&amp; yum install pykickstart</code>

然後使用 ksvalidator 工具來檢查這個檔案:

<code># ksvalidator /var/www/html/kickstart/tecmint.bin</code>

假如檔案中的文法正确,你将不會得到任何輸出,反之,假如檔案中存在錯誤,你得到警告,向你提示在某一行中文法不正确或出錯原因未知。

首先,使用 rhel-server-7.0-x86_64-boot.iso 來啟動你的用戶端。當初始螢幕出現時,選擇安裝 rhel 7.0 ,然後按 tab 鍵來追加下面這一句,接着按 enter 鍵:

<code># inst.ks=http://192.168.0.18/kickstart/tecmint.bin</code>

RHCSA 系列(十二): 使用 Kickstart 完成 RHEL 7 的自動化安裝

rhel kickstart 安裝

其中 tecmint.bin 是先前建立的 kickstart 檔案。

當你按了 enter 鍵後,自動安裝就開始了,且你将看到一個列有正在被安裝的軟體的清單(軟體包的數目和名稱根據你所選擇的程式和軟體包組而有所不同):

RHCSA 系列(十二): 使用 Kickstart 完成 RHEL 7 的自動化安裝

rhel 7 的自動化 kickstart 安裝

當自動化過程結束後,将提示你移除安裝媒體,接着你就可以啟動到你新安裝的系統中了:

RHCSA 系列(十二): 使用 Kickstart 完成 RHEL 7 的自動化安裝

rhel 7 啟動螢幕

盡管你可以像我們前面提到的那樣,手動地建立你的 kickstart 檔案,但你應該盡可能地考慮使用受推薦的方式:你可以使用線上配置工具,或者使用在安裝過程中建立的位于 root 家目錄下的 anaconda-ks.cfg 檔案。

這個檔案實際上就是一個 kickstart 檔案,你或許想在選擇好所有所需的選項(可能需要更改邏輯卷布局或機器上所用的檔案系統)後手動地安裝第一個機器,接着使用産生的 anaconda-ks.cfg 檔案來自動完成其餘機器的安裝過程。

另外,使用線上配置工具或 anaconda-ks.cfg 檔案來引導将來的安裝将允許你在系統安裝時以加密的形式設定 root 密碼。

既然你知道了如何建立 kickstart 檔案并如何使用它們來自動完成 rhel 7 伺服器的安裝,你就可以不用時時照看安裝進度的過程了。這将給你時間來做其他的事情,或者若你足夠幸運,你還可以用來休閑一番。

本文來自雲栖社群合作夥伴“linux中國”,原文釋出日期:2015-10-02