Red Hat Training

A Red Hat training course is available for Red Hat Satellite

章 8. Cobbler

RHN Satellite 包含了能讓管理員中央化其系統安裝,和佈建基礎架構的 Cobbler 伺服器。Cobbler 是個含有各種無人式系統安裝方式的安裝伺服器,無論是在伺服器、工作站,或完整/半虛擬化的客座端系統上。
Cobbler 包含了幾項協助工具,以用於安裝前的指示、kickstart 檔案管理、安裝環境管理等等的情況下。Cobbler 的功能包含了:
  • 透過使用 cobbler check 指令來進行安裝環境分析
  • 透過 cobbler replicate 來進行多點(multi-site)安裝伺服器配置
  • 透過使用 Cheetah template engine(範本引擎)和 Kickstart Snippets 來進行 kickstart 範本建立和管理
  • 透過 koan 客戶端工具來進行自動化虛擬機器客座端安裝。

8.1. Cobbler 的需求

若要使用 Cobbler 作為一個 PXE boot 伺服器,您應檢查下列指導方針:
  • 若您計畫使用 Cobbler 並透過使用 PXE 來安裝系統,您必須先安裝與配置 tftp-server
  • 若您計畫使用 Cobbler 來在 PXE boot 系統上進行安裝,您必須要有能夠作為 Cobbler PXE booting 的 DHCP 伺服器的能力,或是持有您網路 DHCP 伺服器的 /etc/dhcp.conf 的存取權限,並將 next-server 更改為您 Cobbler 伺服器的主機名稱或 IP 位址。

8.1.1. 以 /etc/cobbler/settings 來配置 Cobbler

大部份的 Cobbler 配置主要是在 /etc/cobbler/settings 檔案中所進行的。該檔案中包含了一些配置設定,並為各項設定提供了詳細的解釋,它解釋了各項設定如何影響 Cobbler 的功能,以及是否建議用戶更改它們環境的設定。
大部分的設定都可被保留為預設值,Cobbler 將會按照預期地執行。欲取得更多有關於配置 Cobbler 設定的相關資訊,請查看 /etc/cobbler/settings 檔案,該檔案詳細地描述了各項設定。

8.1.2. Cobbler 的必要服務

Cobbler 需要某些特定服務。若要 Cobbler 正確運作,您將需要啟用這些服務。

8.1.2.1. 以 DHCP 配置 Cobbler

Cobbler 支援已配置使用 PXE boot 伺服器來進行網路開機的系統的「裸機 kickstart 安裝」。若要正確實做 Cobbler 安裝伺服器,管理員必須要持有網路的 DHCP 伺服器的管理權限,或在 Cobbler 伺服器上實做 DHCP 的管理權限。
8.1.2.1.1. 配置一個既有的 DHCP 伺服器
若您在網路上的另一部系統上建置了一個 DHCP 伺服器,您將需要持有 DHCP 伺服器的管理權限,才可編輯 DHCP 配置檔案,如此一來它才會指向 Cobbler 伺服器和 PXE boot 映像檔。
請在 DHCP 伺服器上以 root 身份編輯 /etc/dhcpd.conf 檔案,並附加一個包含著進行 PXE boot 安裝選項的新 class。例如:
allow booting;
allow bootp;
class "PXE" {
match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.168.2.1;
filename "pxelinux.0";
}
上述範例的逐步動作:
  1. 系統管理員透過了 bootp 通訊協定來啟用了網路開機。
  2. 接著,管理員建立了一個稱為 PXE 的 class,若有部系統配置 PXE 作為它的優先開機順序,它便會將自己辨識為 PXEClient
  3. 接著 DHCP 伺服器會將系統重定向至位於 192.168.2.1 的 Clobber 伺服器。
  4. 最後,DHCP 伺服器會擷取 pxelinux.0 開機載入程式檔案。

8.1.2.2. 為 Cobbler 配置 Xinetd 和 TFTP

Xinetd 是個管理一套服務的 daemon,這些服務包括了 TFTP,也就是使用來將 boot 映像檔轉換至 PXE 客戶端的 FTP 伺服器。
若要配置 TFTP,您首先必須透過 Xinetd 來啟用這項服務。若要這麼作,請以 root 身份編輯 /etc/xinetd.d/tftp,並將 disable = yes 行列更改為 disable = no
在 TFTP 可 serve pxelinux.0 這個 boot 映像檔之前,您必須啟用 Xinetd 服務。
chkconfig --level 345 xinetd on
/sbin/service xinetd start
chkconfig 指令會將所有用戶層級的 xinetd 服務開啟,/sbin/service 指令則會立刻開啟 xinetd

8.1.2.3. 配置 SELinux 和 IPTables 來支援 Cobbler

除了預設啟用的安全性防火牆之外,Red Hat Enterprise Linux 安裝時亦提供了 SELinux 上的支援。若要正確配置 Red Hat Enterprise Linux 伺服器來使用 Cobbler,您首先必須配置這些系統和網路安全性防護措施,才能允許連至和來自於 Cobbler 伺服器的連線。
8.1.2.3.1. SELinux 配置
若要啟用 SELinux 以支援 Cobbler,您必須將 SELinux 的 boolean 設成可允許 HTTPD 網站服務元件。請以 root 身份在 Cobbler 伺服器上執行下列指令:
 setsebool -P httpd_can_network_connect true
-P 這個切換選項是必要的,因為它可在所有系統重新啟動的狀況下持續地啟用 HTTPD 連線。
8.1.2.3.2. IPTables 的配置
一旦您配置了 SELinux 之後,您接著必須配置 IPTables 才可允許 Cobbler 伺服器上連入和連出的網路流量。
若您有個使用 IPTables 的現有防火牆規則集,您需要新增下列規則,來將必要的 Cobbler 相聯通訊埠開啟。以下列出了各個必要規則以及它們的相聯服務。
  • TFTP:
    /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 69 -j ACCEPT
    /sbin/iptables -A INPUT -m state --state NEW -m udp -p udp --dport 69 -j ACCEPT
    
  • HTTPD:
    /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
    /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
    
  • Cobbler 與 Koan XMLRPC
    /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 25151 -j ACCEPT
    
當這些防火牆規則被輸入之後,請確認您儲存了防火牆配置:
/sbin/iptables-save