Red Hat Training

A Red Hat training course is available for Red Hat Satellite

入門指南

Red Hat Network 衛星伺服器 5.5

透過 Red Hat Network 衛星伺服器進行佈建和建置

版 2

Red Hat Engineering Content Services

摘要

本文件包含了有關於使用 Red Hat Network Satellite 中的 kickstart 佈建功能的詳細資料與指南。欲取得更多有關於衛星伺服器的基本資訊,請參閱《衛星伺服器使用者指南》。

章 1. 簡介

「佈建」乃一項將實體或是虛擬機器配置為預定義的已知狀態的程序。Red Hat Network(RHN)Satellite 會使用 kickstart 程序來佈建系統。若要使用佈建功能,您需要一或更多部目標機器。這些目標機器能夠是實體、裸機系統或是虛擬機器。若要使用 RHN Satellite 的虛擬機器佈建功能,請使用 Xen 或是 KVM 來建立虛擬機器。

定義

本指南中所使用的專有名詞:
Kickstart
在少量或甚至是無使用者互動的情況下,完成安裝 Red Hat 系統的自動化程序。技術上來講,kickstart 亦代表 Anaconda 安裝程式中的一種機制,它能允許您為安裝程式提供機器的精簡內容詳述與配置,使其之後能套用。此種精簡系統定義亦稱為 Kickstart 設定檔
Kickstart 設定檔
Kickstart 檔案是個指定了 kickstart 一部機器時所需的所有選項的文字檔案,它包含了磁碟分割資訊、網路配置,以及需安裝的套件。在 RHN 衛星伺服器中,Kickstart 設定檔為傳統 Anaconda kickstart 定義的超集,因衛星伺服器的實做能增強 Cobbler 的 kickstart。Kickstart 設定檔會假設 Kickstart 安裝樹已存在。
Kickstart 安裝樹
要 kickstart 一部機器所需的軟體和支援檔案。這一般亦稱為「安裝樹」。這一般會是來自於特定發行版安裝媒介中的目錄結構和檔案。根據 Cobbler 的概觀,Kickstart 安裝樹為發行版的一部分。
PXE(Preboot eXecution Environment)
一個可在開機時,在目標機器本身無預配置的情況下,kickstart 裸機系統(一般為實體或真實機器)的低階層協定。PXE 仰賴 DHCP 伺服器來通知客戶端有關於 bootstrap 伺服器的相關資訊(用於此文件乃 Satellite 5.3.0 或更新版本)。目標機器的軔體必須支援 PXE,才可使用它。您可在無 PXE 的情況下,使用衛星伺服器的虛擬化和重新安裝設施,儘管 PXE 對於啟動新實體機器,或對於重新安裝未向衛星伺服器註冊的機器來說,非常的有幫助。

佈建藍本

RHN Satellite 所支援的佈建藍本:
新安裝
佈建從未安裝任何作業系統的系統(亦稱為裸機安裝)。
虛擬安裝
衛星伺服器支援 KVM、Xen 完整虛擬化客座端,以及 Xen 半虛擬化客座端。
重新佈建
實體與客座端系統皆可重新佈建,不過它們必須向相同的衛星伺服器事例註冊。請參閱 節 2.5.2, “重新佈建”

章 2. Kickstart

2.1. 必要的套件

若您要使用自訂的發行版,您將需要下列套件,這些套件可藉由任何 rhn-tools Red Hat Network(RHN)頻道取得:
  • koan
  • spacewalk-koan
建議您複製一份既有的 rhn-tools 頻道,以由您的自訂頻道存取這些套件。
RHN Satellite 會預期 kernelinitrd 檔案位於 kickstart 安裝樹中的特定位置。然而,這些位置會根據不同架構而異。下列表格詳述了不同的位置:

表格 2.1. 架構所需的發行版檔案

架構 kernel 初始 RAM Disk 映像檔
IBM System z TREE_PATH/images/kernel.img TREE_PATH/images/initrd.img
PowerPC TREE_PATH/ppc/ppc64/vmlinuz TREE_PATH/images/pxeboot/vmlinux
所有其它架構 TREE_PATH/images/pxeboot/vmlinuz TREE_PATH/images/pxeboot/initrd.img

2.2. Kickstart 安裝樹

您的衛星伺服器上必須至少安裝了一個 kickstart 安裝樹,才可使用 kickstart 佈建。Kickstart 安裝樹可透過自動或手動式安裝。

過程 2.1. 自動式安裝 Kickstart 安裝樹

對於在 RHN 中含有基礎頻道的所有發行版,kickstart 安裝樹皆可自動地進行安裝。這會作為透過 satellite-sync 進行正常頻道同步程序的一部分發生。
  1. 選擇您希望您的 kickstart 基於哪個發行版上,並找出該發行版的基礎頻道,以及其相應的 RHN Tools 頻道。
    比方說,若您希望在 x86 架構上使用 Red Hat Enterprise Linux 5,您將需要 rhel-i386-server-5 頻道以及其相應的 RHN Tools 頻道 rhn-tools-rhel-i386-server-5
  2. 若您使用的是已連線的衛星伺服器,請透過 satellite-sync 直接與 Red Hat 伺服器同步您的衛星伺服器。若您的衛星伺服器未連線的話,您將需要由 Red Hat 伺服器取得離線頻道傾印,並與這些傾印進行同步。
  3. 同步化頻道將會自動地建立與該發行版相應的 kickstart 安裝樹。

過程 2.2. 手動式安裝 Kickstart 安裝樹

若您希望 kickstart 自訂的發行版、Red Hat 所不支援的發行版,或是 Red Hat Enterprise Linux 的 beta 版本,您需要手動式建立相應的 kickstart 安裝樹。您將需要擁有您欲 kickstart 之發行版的安裝 ISO。
  1. 將安裝 ISO 複製至您的衛星伺服器上,並將它掛載至 /mnt/iso
  2. 將 ISO 的內容複製至自訂的位置。建議您在 /var/satellite 中,為您所有的發行版建立一個目錄。比方說,您能將一個 RHEL beta 發行版的內容複製至 /var/satellite/custom-distro/rhel-i386-server-5.3-beta/
  3. 透過 RHN Satellite 網站介面建立自訂的軟體頻道。透過「頻道管理軟體頻道建立新頻道」來建立一個含有適當名稱與標籤的父頻道。對於以上所使用的範例,您可使用「rhel-5.3-beta」這個標籤。
  4. 透過 rhnpush 指令,來將軟體套件由安裝樹位置推送至新建的軟體頻道中。
    rhnpush --server=http://localhost/APP -c 'rhel-5.3-beta' \  -d /var/satellite/custom-distro/rhel-i386-server-5.3-beta/Server/
    安裝樹中的子目錄可能會根據您的發行版而異。
  5. 當軟體套件推送後,您可透過使用 rm 指令來將它們由安裝樹路徑中刪除。套件依然會存放在衛星伺服器上的頻道中,並且已不再需使用於安裝樹中。
    rm /var/satellite/custom-distro/rhel-i386-server-5.3-beta/Server/*.rpm

    注意

    您可選擇是否要將軟體套件留在 kickstart 安裝樹中。這能讓您之後透過 yum 指令隨時安裝它們。
  6. 使用 RHN Satellite 網站介面來建立發行版。透過「系統Kickstart發行版建立新發行版」來建立發行版,並使用適當的標籤以及完整的安裝樹路徑(例如 /var/satellite/custom-distro/rhel-i386-server-5.3-beta/。請選擇您先前建立的基礎頻道,以及正確的安裝程式產生器(例如「Red Hat Enterprise Linux 5」)。若要完成建立程序,請選擇「建立 Kickstart 發行版」。
  7. 若要在多重環境與系統之間維護相同的軟體,您可將既有的 RHEL 基礎頻道中的 RHN Tools 子頻道複製為新建基礎頻道的子頻道。您可藉由下列步驟複製子頻道:
    1. 請在 Satellite 網站介面上點選「頻道管理軟體頻道複製頻道
    2. 由「從...複製:」下拉式選單選取您希望複製的子頻道,並選擇複製狀態。
    3. 點選「建立頻道」。
    4. 填入必要資訊並選擇被複製的子頻道必須位於哪個父頻道之下。
    5. 點選「建立頻道」。
建立 Kickstart 發行版

圖形 2.1. 建立 Kickstart 發行版

2.3. Kickstart 設定檔

Kickstart 設定檔可指定使用於安裝中的配置選項。
Kickstart 設定檔能透過使用精靈介面建立,該介面會根據您所回答的一系列問題產生一份設定檔。它們亦可透過使用原生方式建立,這能讓您完全地控制設定檔的內容。

過程 2.3. 以精靈建立 Kickstart 設定檔

  1. 點選系統Kickstart建立新 Kickstart 設定檔
  2. 提供一項適當的「標籤」、選擇欲使用的「基礎頻道」和「Kickstart 安裝樹
  3. 選擇您希望使用的「虛擬化類型」。欲取得更多有關於虛擬化類型上的相關資訊,請參閱 虛擬化類型。請按下「下一步」以繼續進行。
  4. 選擇 kickstart 設定檔的下載位置。若您正在使用自訂的發行版,請將其安裝樹的位置輸入為 URI(支援 HTTP 和 FTP),否則,請使用預設的選項。請按下「下一步」,以繼續進行。
  5. 請輸入 root 密碼,並按下「完成」以完成設定檔建立程序。
  6. 至此,完整的 kickstart 設定檔將會被建立。您可透過點選「Kickstart 檔案」來檢視設定檔。

過程 2.4. 以 Raw 方式建立 Kickstart 設定檔

  1. 選擇系統Kickstart上載新的 Kickstart 檔案
  2. 提供一項適當的「標籤」、並選擇欲使用的「發行版
  3. 選擇您想要的「虛擬化類型」。欲取得更多有關於虛擬化類型的相關資訊,請參閱 虛擬化類型
  4. 若您擁有既有的 kickstart 設定檔,請上載該檔案。否則,請將 kickstart 設定檔寫入「檔案內容」文字方塊中。
    您可使用此原生 kickstart 範本,來作為起始點:
    install
    text
    network --bootproto dhcp
    url --url http://$http_server/ks/dist/org/1/ks-rhel-i386-server-5
    lang en_US
    keyboard us
    zerombr
    clearpart --all
    part / --fstype=ext3 --size=200 --grow
    part /boot --fstype=ext3 --size=200
    part swap --size=1000   --maxsize=2000
    bootloader --location mbr
    timezone America/New_York
    auth --enablemd5 --enableshadow
    rootpw --iscrypted $1$X/CrCfCE$x0veQO88TCm2VprcMkH.d0
    selinux --permissive
    reboot
    firewall --disabled
    skipx
    key --skip
    
    %packages 
    @ Base
    
    %post
    $SNIPPET('redhat_register')
    
  5. 因為 RHN Satellite 在 kickstart 中不會將指定的發行版作為 url 來處理,因此您在您的設定檔中,必須如下包含 url --url 選項:
    url --url http://satellite.example.com/ks/dist/org/1/my_distro
    my_distro 替換為發行版標籤,並將 1 替換為您的 org id。
  6. 原生 kickstart 設定檔使用 $http_server,而非衛星伺服器的主機名稱。這會在 kickstart 範本轉換時,自動地填入。
  7. redhat_register 程式碼片段會被用來處理註冊。
原生 Kickstart

圖形 2.2. 原生 Kickstart

虛擬化類型

所有 Kickstart 設定檔皆有與其相聯的虛擬化類型。此表格顯示了不同的選項:

表格 2.2. 虛擬化類型

類型 描述 使用方法
無虛擬化 使用此類型來進行一般的佈建、裸機安裝和非 Xen 或 KVM 的虛擬化安裝(例如 VMware 或是 Virtage)
KVM 虛擬化客座端 KVM 客座端 使用此類型來佈建 KVM 客座端
Xen 完整虛擬化客座端 Xen 客座端 使用此類型來佈建 Xen 客座端

注意

此選項需要主機上擁有硬體支援,不過在客座端上無須擁有經過修改的作業系統。
Xen 半虛擬化客座端 Xen 客座端 使用此類型來以 Xen 半虛擬化佈建虛擬客座端。半虛擬化為最快速的虛擬化模式。它在系統 CPU 上需要擁有 PAE 旗標,以及經修改的作業系統。Red Hat Enterprise Linux 5 支援在半虛擬化環境下的客座端。
Xen 虛擬化主機 Xen 主機 佈建 Xen 半虛擬化的虛擬主機時,請使用此類型。若硬體相容,Xen 半虛擬化客座端和主機便受到支援。
被建立作為 Xen 主機的 kickstart 設定檔的 %packages 部份中,必須包含 kernel-xen 套件。
被建立作為 KVM 主機的 kickstart 設定檔的 %packages 部份中,必須包含 qemu 套件。
完整虛擬化的系統可能需要虛擬化支援,才能在電腦的 BIOS 中開啟。

注意

欲取得更多有關於 kickstart 上的相關資訊,請參閱《Red Hat Enterprise Linux 安裝指南》中的《Kickstart 安裝》一章。

2.4. 範本化

Kickstart 範本化能讓您在您的 kickstart 檔案中,包含變數、程式碼片段,以及例如 for 迴圈以及 if 表示式的流程控制表示式。這是透過使用 cheetah 工具來達成的。
使用範本化的各種原因如下:
  • 在進行多項 kickstart 之間,重新使用 kickstart 的某特定部份,比方說磁碟分割的部份。
  • 在進行多項 kickstart 時,一致性地進行某些 %post 動作。
  • 在多種伺服器角色(例如 DNS 伺服器、代理伺服器,以及網站伺服器)之間,定義程式碼片段。比方說,網站伺服器可能會定義下列程式碼片段:
    httpd
    mod_ssl
    mod_python
    
    在您 kickstart 檔案的 %package 部份中建立網站伺服器設定檔,包括網站伺服器程式碼片段。若您希望設定檔可使用於網站伺服器與代理伺服器,您可將這兩者的程式碼片段包含在套件部份中。若您希望新增其它套件至網站伺服器的程式碼片段中(比方說 mod_perl),您可透過更新程式碼片段,所有使用該程式碼片段的設定檔也都會被動態式地更新。
變數

範本化能讓您定義使用於 kickstart 檔案中的變數。變數可設置於某層級,並置換其下方的層級。因此,若變數定義於系統層級,它將會置換定義於設定檔或 kickstart 安裝樹層級的相同變數。相同地,若變數定義於設定檔層級中,它將會置換定義於 kickstart 安裝樹層級中的相同變數。

注意

請注意,無法為自動產生的 kickstart 安裝樹(如您進行衛星伺服器同步時所建立的安裝樹)定義 kickstart 安裝樹變數。
Snippet(程式碼片段)

程式碼片段會重新使用多個 kickstart 範本之間的程式碼。它們可散佈於多個行列上,並包含變數。它們可藉由使用 $SNIPPET('snippet_name') 文字,包含在 kickstart 設定檔中。您可為特定套件清單、特定 %post script,或是任何一般會包含在 kickstart 檔案中的文字製作程式碼片段。

若要管理程式碼片段,請至 系統KickstartKickstart 程式碼片段
Kickstart 程式碼片段」網頁會顯示幾個預設、無法編輯,不過卻可讓其它任何組織使用的程式碼片段。預設的程式碼片段可使用於被寫入或上載至 RHN Satellite 伺服器上的 kickstart 中。預設的程式碼片段儲存在 RHN Satellite 伺服器的檔案系統上的 /var/lib/cobbler/snippets/ 中。/var/lib/rhn/kickstarts/wizard/ 中有個精靈類型的 kickstart 範本,它詳述了各種不同的預設程式碼片段,以及其使用方法。
redhat_register 程式碼片段是個使用來將機器註冊至 RHN Satellite 伺服器作為 kickstart 一部分的預設程式碼片段。它使用了一個名為 redhat_management_key 的變數來註冊機器。若要使用此程式碼片段,請在系統、設定檔,或發行版層級中設置 redhat_management_key 變數,並將 $SNIPPET('redhat_register') 附加至 kickstart 的 %post 部份中。所有 RHN Satellite 伺服器所產生的精靈類型 kickstart 的 %post 部份中,皆會包含此程式碼片段。
您可透過「自訂程式碼片段」分頁來檢視和編輯為您組織所建立的程式碼片段。您可藉由點選「新建程式碼片段」來建立新的程式碼片段。自訂的程式碼片段存放在 /var/lib/rhn/kickstarts/snippets/ 目錄中。RHN Satellite 會將不同組織的程式碼片段存放在不同的目錄中,因此自訂的程式碼片段,會以類似以下的檔案名稱儲存,1 代表組織 ID:
$SNIPPET('spacewalk/1/snippet_name')
若要找出使用來在 kickstart 中插入程式碼片段的文字,請在程式碼片段清單上,或程式碼片段詳細資料網頁上,尋找「程式碼片段巨集」一欄。

注意

程式碼片段處於全域層級中,並且不與變數共享相同的繼承結構。然而,變數可使用於程式碼片段中,以在不同系統請求 kickstart 時,更改它們的特性。
Kickstart 程式碼片段

圖形 2.3. Kickstart 程式碼片段

跳脫特殊字元

$# 字元會使用於進行範本化時,以指定變數和控制流程。若您需要在 script 中,為了其它用途使用這些字元,它們將需要被跳脫,如此一來它們才不會被視為是變數。這能以多種方法完成:

  • 在所有您希望在進行範本化時忽略的 $# 的前方,放置一個反斜線(\)。
  • 將整個 script 包含在 #raw ... #end raw
    所有透過精靈方式的 kickstart 所建立的 %pre%post script,就預設值皆會包含 #raw...#end raw。這能在編輯 %post%pre script 時,透過使用「範本」核取方塊來進行切換。
  • 在程式碼片段的第一行中包含 #errorCatcher Echo

範例 2.1. 跳脫範本中的特殊字元

此範例詳述了如何在 kickstart 範本中跳脫特殊字元。
下列 bash script 需要插入一個 %post 部份中:
%post 
echo $foo > /tmp/foo.txt
若沒跳脫 $,範本化引擎將會嘗試尋找名為 $foo 的變數。這項動作將會失敗,因為變數中 foo 並不存在。
跳脫 $ 最簡易的方式,就是透過使用反斜線字元(\):
%post 
echo \$foo > /tmp/foo.txt
這會造成 \$foo 被轉換為 $foo
第二種方式就是如下將整個 bash script 包在 #raw ... #end raw 中:
%post 
#raw  
echo $foo > /tmp/foo.txt 
#end raw
最後一種方法,就是將 #errorCatcher Echo 包含在 kickstart 範本的第一行中。這會指示範本化引擎忽略任何不存在的變數,並將文字照樣地印出。此選項已包含在精靈形式的 kickstart 中,並且可包含在您手動式建立的原生 kickstart 中。

2.5. Kickstart 一部機器

2.5.1. 由一部裸機進行 kickstart

當機器上沒有既有的作業系統,或是安裝了錯誤的作業系統時,它會被視為裸機。有三種方式可由裸機佈建一部機器:
  • 標準作業系統安裝媒介
  • PXE 開機

過程 2.5. 透過安裝媒介開機

  1. 將安裝媒介插入機器中。媒介必須符合您欲使用的 kickstart。比方說,若 kickstart 已配置為使用 ks-rhel-i386-server-5-u2 kickstart 安裝樹,請使用 Red Hat Enterprise Linux 5.2 i386 安裝媒介。
  2. 當您被提供開機提示時,請藉由下列指令來啟動 kickstart:
    linux ks=http://satellite.example.com/path/to/kickstart
    
  3. 系統將會開機、下載 kickstart,並進行自動安裝。

過程 2.6. PXE 開機

若要能夠進行一項 PXE 開機,您每部機器皆需要支援於 BIOS 層級進行 PXE 開機。近期推出的大部分硬體,皆應該能夠這麼作。此外,您必須擁有 DHCP 伺服器,儘管您的系統需在安裝完成後,進行靜態配置的動作。
  1. 重要

    若您在網路上的另一部系統上建置了 DHCP 伺服器,您將需要 DHCP 伺服器的管理權限,才可編輯 DHCP 配置檔案。
    若您的機器位於多重網路上,您需要確認您的所有機器皆能連至 DHCP 伺服器。這可透過 multi-homing 您的 DHCP 伺服器(使用真實或切割過的 VLAN),和配置任何路由器或 switch,來在網路界線之間傳送 DHCP。
    請透過為您希望由 RHN Satellite 管理的系統設置 next-server 位址來配置您的 DHCP 伺服器,以使其指向 PXE 伺服器。
    若要在進行安裝程序時使用主機名稱,請藉由包含下列行列,以將 DHCP 配置為指向區域和 IP 位址:
    option domain-name DOMAIN_NAME;
    option domain-name-servers IP_ADDRESS1, IP_ADDRESS2;
    
  2. 請在 DHCP 伺服器上,切換為 root 使用者並開啟 /etc/dhcpd.conf 檔案。請附加新的 class 與選項以進行 PXE 開機安裝:
    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";
    }
    
    此 class 將會進行下列動作:
    1. bootp 協定啟用網路開機
    2. 請建立一個名為 PXE 的 class。若系統被配置為以 PXE 啟動為優先,它會將自己辨識為 PXEClient
    3. DHCP 伺服器會將系統指向 IP 位址為 192.168.2.1 的 Cobbler 伺服器。
    4. DHCP 伺服器會參照位於 /var/lib/tftpboot/pxelinux.0 的開機映像檔。
  3. 配置 Xinetd。Xinetd 是個會管理一套服務的 daemon(包括 TFTP,也就是使用來將開機映像檔傳送至 PXE 客戶端的 FTP 伺服器)。
    透過 chkconfig 指令啟用 Xinetd:
    chkconfig xinetd on
    
    此外,請切換為 root 使用者,並開啟 /etc/xinetd.d/tftp 檔案。請找出 disable = yes 一行,並將它更改為 disable = no
  4. 啟用 Xinetd 服務,如此一來 TFTP 便能開始服務 pxelinux.0 開機映像檔:
    chkconfig --level 345 xinetd on
    /sbin/service xinetd start
    
    chkconfig 指令會將 xinetd 服務啟用於所有使用者 runlevel,而 /sbin/service 指令則會即刻啟用 xinetd

2.5.2. 重新佈建

重新安裝一部既有的系統,亦稱為重新佈建。重新佈建可透過使用 RHN Satellite 網站介面來完成,並且系統將會使用與重新佈建前相同的系統設定檔。這將會保留許多有關於系統的設定以及其它資訊。
您可在檢視系統時,藉由「佈建」分頁,來排程一項重新佈建。若要配置額外的選項,請至「進階配置」網頁。在此網頁上,您可配置像是 kernel 選項、網路資訊,以及套件設定檔同步化的詳細資料。「Kernel 選項」部份提供了在進行 kickstart 時,所使用的 kernel 選項的權限。「Post Kernel 選項」則為 kickstart 完成後,當系統第一次啟動時所會使用的 kernel 選項。

範例 2.2. 配置 Kernel 選項和 Post Kernel 選項

此範例詳述了進行重新佈建配置程序時,kernel 選項與 post kernel 選項之間的差異。
若您希望建立一組 VNC 連線,以遠端監控 kickstart,請將 vnc vncpassword=PASSWORD 包含在 Kernel Options 一行中。
若您希望系統的 kernel 以 noapic kernel 選項開機,請將 noapic 附加至 Post Kernel Options 一行。

過程 2.7. 檔案保留

檔案保留功能可用來將檔案保留,以防進行重新佈建時遺失。此功能會在 kickstart 時。暫時性地儲存檔案,並在重新佈建完成後,將它們復原。

注意

檔案保留清單僅可使用於精靈形式的 kickstart,並且只有在進行重新佈建時可使用。
  1. 請至系統Kickstart檔案保留新建檔案保留清單,並建立一列需要保留的檔案之清單。
  2. 請至系統Kickstart設定檔,並透過選擇想要的設定檔,來使檔案保留清單與 kickstart 相聯。
  3. 請至系統詳細資料檔案保留,並選擇檔案保留清單。

2.5.3. 虛擬客座端佈建

RHN Satellite 5.5 中支援使用下列虛擬化技術,來進行虛擬客座端的佈建:
  • KVM 虛擬化客座端
  • Xen 完整虛擬化客座端
  • Xen 半虛擬化客座端

過程 2.8. 佈建虛擬化客座端

  1. 檢查主機系統是否擁有「虛擬化」或[「虛擬化平台」系統權利。
  2. 請在「系統」網頁上,選擇適當的虛擬主機,然後選擇 虛擬化佈建。請選擇適當的 kickstart 設定檔,並輸入一組客座端名稱。
  3. 若您希望配置額外的參數,例如客座端記憶體和 CPU 使用量,請點選「進階配置」按鈕。之後您便可進行以下的配置:
    • 網路:靜態或 DHCP
    • Kernel 選項
    • 套件設定檔同步:當 kickstart 完成後,系統將會與另一部系統,或已儲存的設定檔同步其套件設定檔
    • 記憶體分配:RAM(預設值為 512MB)
    • 虛擬磁碟大小
    • 虛擬 CPU(預設值為 1)
    • 虛擬橋接:進行安裝用的網路作業橋接。Xen 的佈建預設值為 xenbr0,而 KVM 則為 virbr0

      注意

      virbr0 網路作業橋接不允許外部網路。若您需使用外部的網路,請配置主機,以建立實際的橋接來代替。然而,xenbr0 乃實際的橋接,建議您盡可能使用它。
    • 虛擬儲存裝置路徑:儲存客座端磁碟資訊的檔案、LVM 邏輯卷冊、目錄,或區塊裝置的路徑(例如 /dev/sdb/dev/LogVol00/mydiskVolGroup00/var/lib/xen/images/myDisk)。
  4. 點選「排程 Kickstart 並結束

2.5.4. 透過 RHN 代理伺服器進行佈建

佈建亦可透過使用一部已安裝,並向 RHN Satellite 註冊過的 RHN 代理伺服器來完成。
  1. 當佈建虛擬客座端或為一部系統進行重新佈建時,請由「選擇衛星伺服器代理伺服器」下拉式方塊中選擇您要的代理伺服器。
  2. 當要進行裸機安裝時,請將 RHN Satellite 的完整網域名稱(FQDN)取代為代理伺服器的 FQDN。比方說,若 kickstart 檔案的 URL 為:
    http://satellite.example.com/ks/cfg/org/1/label/myprofile
    
    然後透過代理伺服器進行 kickstart,請使用:
    http://proxy.example.com/ks/cfg/org/1/label/myprofile
    

章 3. 多重衛星伺服器

Inter-satellite synchronization(ISS)能讓您協調衛星伺服器之間的內容。這項功能可根據您組織的需求,來以多種不同方式使用。此章節包含了使用案例的一部分,以及如何針對於您的組織設定 ISS。

ISS 需求

下列為使用 ISS 的必要條件:
  • 二或更多部 RHN Satellite 伺服器
  • 至少一個 RHN Satellite,並且至少填入了一個頻道
  • 為了安全的連線,所有的 slave RHN Satellite 皆需要 RHN Satellite SSL 憑證

3.1. Inter-Satellite Synchronization(ISS)

過程 3.1. 配置 Master 伺服器

Master 伺服器會被用來決定哪些檔案應同步至其它衛星伺服器。
  1. 啟用 Inter-Satellite 同步(ISS)功能。請開啟 /etc/rhn/rhn.conf 檔案,並新增或修改為下列一行:
    disable_iss=0
    
  2. 請在 /etc/rhn/rhn.conf 檔案中,找出 allowed_iss_slaves= 一行。就預設值,沒有 slave 衛星伺服器會被指定進行同步。請輸入各個 slave 衛星伺服器的主機名稱,並以逗號進行區隔:
    allowed_iss_slaves=slave1.satellite.example.org,slave2.satellite.example.org
    
  3. 儲存配置檔案,並重新啟用 httpd 服務:
    service httpd restart
    

過程 3.2. 配置 Slave 伺服器

Slave 衛星伺服器是一部會將其內容同步至 master 伺服器的機器。
  1. 若要安全地將內容傳輸至 slave 伺服器,您需要來自於 master 伺服器的 ORG-SSL。您可透過 HTTP 由任何衛星伺服器的 /pub/ 目錄下載憑證。該檔案名為 RHN-ORG-TRUSTED-SSL-CERT,不過可重新命名並放置在 slave 衛星伺服器的任何本機檔案系統上,例如 /usr/share/rhn/ 目錄中。
  2. 請以下列指令檢視可由 master 伺服器同步的頻道清單。這將會顯示正式的 Red Hat 頻道,以及任何可用的自訂頻道:
    satellite-sync --iss-parent=master.satellite.example.com --ca-cert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT --list-channels
    
    master.satellite.example.com 取代為 master 伺服器的主機名稱。

過程 3.3. 執行一項 Inter-Satellite Synchronization

當配置了 master 和 slave 伺服器後,您便可進行同步。
  1. 請在 slave 伺服器上,使用您偏好的文字編輯器開啟 /etc/rhn/rhn.conf 檔案,並新增 master 伺服器主機名稱和 SSL 憑證檔案路徑詳情:
    iss_parent      = master.satellite.example.com
    iss_ca_chain    = /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT
    
  2. 藉由執行 satellite-sync 指令來進行同步:
    satellite-sync -c your-channel

    注意

    satellite-sync 指令一起提供的指令列選項會置換 /etc/rhn/rhn.conf 檔案中的所有自訂設定。

3.2. 組織同步化

ISS 亦可使用來將內容匯入任何特定組織中。這可透過本機或遠端同步來完成。這項功能對於擁有多重組織的離線衛星伺服器來說相當有幫助,在此情況下,內容會透過頻道傾印或由已連線的衛星伺服器匯出來取得,然後再被匯入至離線的衛星伺服器上。組織同步程序可被用來由已連線的衛星伺服器匯出自訂頻道。它亦可被使用來有效地在多重組織之間,進行內容的移動。
組織同步程序會依照幾項需遵循的規則進行,以確保來源組織的完整性:
  • 若來源內容屬於 NULL 組織(也就是任何 Red Hat 內容),它便會預設為 NULL 組織,儘管已指定了一個目的地組織。這可確保指定的內容總是會在此具有權限的 NULL 組織中。
  • 若在指令列上指定了組織,內容便會由該組織中匯入。
  • 若沒有指定組織的話,預設值便會是 organization 1。
下列為三種當組織 ID(orgid)被使用來在衛星伺服器之間,進行同步的範例情況:

範例 3.1. 將內容由 master 匯入至 slave 衛星伺服器

此範例將內容由 master 匯入至 slave 衛星伺服器:
satellite-sync --parent-sat=master.satellite.example.com -c channel-name --orgid=2

範例 3.2. 由一個組織的匯出傾印匯入內容

此範例由一個特定組織的匯出傾印匯入內容:
$ satellite-sync -m /dump -c channel-name --orgid=2

範例 3.3. 由 Red Hat Network Hosted 匯入內容

此範例由 Red Hat Network Hosted 匯入內容(假設系統已註冊並已啟動):
$ satellite-sync -c channel-name

3.3. ISS 使用案例

ISS 可根據您的組織,以各種不同方式使用。此部份提供了如何選擇使用 ISS 的範例,以及設定和操作這些案例的方式。

範例 3.4. 暫存衛星伺服器

此範例中使用了一部暫存衛星伺服器來準備內容,並進行套件上的品管(QA)工作,以確保套件適用於生產環境。當內容已核准使用於生產環境時,生產衛星伺服器便會與暫存衛星伺服器進行內容的同步化。
  1. 執行 satellite-sync 指令以和「rhn_parent」同步資料(一般為 Red Hat Network Hosted):
    satellite-sync -c your-channel
    
  2. 請執行下列指令以從 staging 伺服器同步資料:
    satellite-sync --iss-parent=staging-satellite.example.com -c custom-channel

範例 3.5. 已同步的 Slave

在此範例中,master 衛星伺服器會將資料直接提供給 slave,並且這些變更會經常地同步。

範例 3.6. Slave 自訂內容

此範例使用了 master 衛星伺服器來作為開發頻道,內容會由此散佈至所有生產的 slave 衛星伺服器上。有些 slave 衛星伺服器會擁有 master 衛星伺服器頻道中所沒有的額外內容。這些套件將會被保留,不過所有來自於 master 衛星伺服器的變更皆會被同步至 Slave 衛星伺服器上。

範例 3.7. 雙向同步

在此環境下,兩部 RHN Satellite 會作為對方的 master,並且能夠同步之間的內容。
  1. 確認各衛星伺服器皆能共享 SSL 憑證。
  2. 請在第一部衛星伺服器上,開啟 /etc/rhn/rhn.conf 檔案,並將 iss_parent 選項設為指向第二部衛星伺服器的主機名稱。
  3. 請在第二部衛星伺服器上開啟 /etc/rhn/rhn.conf 檔案,並將 iss_parent 選項設為指向第一部衛星伺服器的主機名稱。

章 4. 進階 API Method 與指令

4.1. XML-RPC API

RHN Satellite 5.5 支援透過 XML-RPC API 進行佈建。
下列 API 方式可使用來 kickstart 設定檔和維護安裝樹:

表格 4.1. XML-RPC 方式

XML-RPC Namespace 使用方法
kickstart 建立、匯入,和刪除 kickstart 設定檔。亦可用來列出可用的 kickstart 安裝樹和設定檔。
kickstart.tree 建立、重新命名、更新和刪除 kickstart 安裝樹。
kickstart.filepreservation 列出、建立,和刪除能與 kickstart 設定檔相聯的檔案保留清單。一旦建立了檔案保留清單後,它便能透過調用 kickstart.profile.system.add_file_preservations API method 來與 kickstart 設定檔相聯。
kickstart.keys 列出、建立,和移除能夠與不同 kickstart 設定檔相聯的啟用金鑰(GPG/SSL)。

注意

一旦建立了加密金鑰後,它便能透過調用 kickstart.profile.system.add_keys API method,來與 kickstart 設定檔相聯。
kickstart.profile 操作 IP 範圍、更改 kickstart 安裝樹和子頻道、下載與設定檔相聯的 kickstart 檔案、操作進階選項、操作自訂選項,和新增與某 kickstart 設定檔相聯的 pre/post script。
kickstart.profile.keys 列出、新增(相聯),和移除(取消關聯)與 kickstart 設定檔相聯的啟用金鑰。
kickstart.profile.software 操作與 kickstart 設定檔相聯的套件清單。
kickstart.profile.system 管理檔案保留、管理加密金鑰、啟用/停用配置管理以及遠端指令、設定磁碟分割配置,以及設定與特定 kickstart 設定檔相聯的地區資訊。
下列 API method 調用可使用來重新佈建主機,和排程客座端安裝:
  • system.provision_system
  • system.provision_virtual_guest
欲取得更多有關於 API 調用上的資訊,請參閱位於 https://satellite.example.com/rpc/api 的 API 文件。

4.2. Cobbler

RHN Satellite 使用了 Cobbler 來提供佈建功能。當要佈建的 kickstart 設定檔、安裝樹(發行版)與系統已更新於 RHN Satellite 中的時候,它們會與 RHN Satellite 主機上的 Cobbler 事例進行同步。這代表您可直接使用 Cobbler 來管理佈建。
下列表格詳述了 Cobbler 指令:

表格 4.2. Cobbler 指令

指令 使用方法
cobbler profile list 在 RHN Satellite 主機上執行這項指令,以顯示設定檔清單
cobbler distro list 顯示一列 kickstart 安裝樹、kernel、RAM disk 以及其它選項的清單
cobbler system list 顯示一列系統紀錄清單(當 kickstart 被排程時所建立的)
cobbler profile report --name=profile-name or cobbler system report --name=system-name 顯示特定物件的更詳細輸出
cobbler profile edit --name=profile-name --virt-ram=1024 編輯各種參數。此範例會分配 1GB 的記憶體給各個設定檔的虛擬化安裝。
cobbler system edit --name=system-name --netboot-enabled=1 強制系統下次重新啟動時重新安裝
cobbler system edit --name=system-name --profile=new-profile-name --netboot-enabled=1 將系統指定給新的設定檔,以進行重新安裝
cobbler system find --profile=profile-name 列出所有指定給特定設定檔的系統
cobbler system find --profile="abc" | xargs -n1 --replace cobbler system edit \ --name={} --profile="def" --netboot-enabled=1 將所有目前設為 abc 設定檔的系統全部設為 def 設定檔,並在它們下次重新啟動時,重新安裝它們:
cobbler profile edit --name=profilename --kopts="variablename=3" --in-place 在不修改其它任何變數的情況下,在設定檔上設定一個額外的範本化變數:
cobbler system edit --name=systemname --kopts="selinux=disabled asdf=jkl" 將各種變數指定至系統紀錄,並忽略任何已設置的較舊變數
cobbler profile find --name="*webserver*" | xargs -n1 --replace cobbler profile edit --name={} --profile="RHEL5-i386" 將所有任何包含了 webserver 的新設定檔設為字串,以使用名為 RHEL5-i386 的設定檔
其它 Cobbler 設定

/etc/cobbler/settings 中只有少數 Cobbler 設定應直接更改。pxe_just_once 就是其中之一(描述於 過程 4.3, “配置 Cobbler 以使用 PXE” 中)。您亦可更改 server 選項,以反映 RHN Satellite 伺服器的位址或主機名稱。

在更改過了 /etc/cobbler/settings 之後,請執行下列指令以套用變更:
/sbin/service cobblerd restart
cobbler sync

重要

請勿調整 /etc/cobbler/settings 中任何其它設定。RHN Satellite 需要此檔案保持為 RHN Satellite 安裝程式所決定的特定配置。相同地,負責控制認證來源的 /etc/cobbler/modules.conf 檔案,應維持 RHN Satellite 安裝程式建立它時的狀態。特別是,認證模組選擇必須保留為 authn_spacewalk,並且不可更改。

過程 4.1. 為 Cobbler 配置 SELinux

Red Hat Enterprise Linux 就預設值會安裝 SELinux 支援與安全的防火牆。若要正確配置一部 Red Hat Enterprise Linux 伺服器以使用 Cobbler,SELinux 必須經過配置,以允許連入或由 Cobbler 伺服器連出。
  1. 若要啟用 SELinux 以支援 Cobbler,您必須透過下列指令來設置 SELinux 布林值,以允許 HTTPD 網站服務元件:
    setsebool -P httpd_can_network_connect true
    
    -P 切換選項是必要的,因為它能在系統重新啟動的情況下,維持啟用 HTTPD 連線的一致性。
  2. 透過在 Cobbler 伺服器上使用下列指令,來為 TFTP 設置 SELinux 檔案 context 規則,以處理開機映像檔:
    semanage fcontext -a -t public_content_t "var/lib/tftpboot/.*"
    
  3. 您必須配置 IPTables,以允許 Cobbler 伺服器上連入和連出的網路流量。
    若您擁有既有的防火牆規則集,請新增下列規則,以如下開啟 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:
    /sbin/iptables -A INPUT -m state --state NEW -m tcp -p udp --dport 25150 -j ACCEPT
    
    Koan:
    /sbin/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 25151 -j ACCEPT
    
  4. 儲存防火牆配置:
    /sbin/iptables-save
    
  5. 請透過執行下列指令,確認所有配置檔案皆已同步:
    cobbler sync
    
  6. 啟動衛星伺服器:
    /usr/sbin/rhn-satellite start
    

    警告

    請勿啟用或停用衛星伺服器的獨立 cobblerd 服務,因為這麼作可能會造成錯誤與其它問題。
    請總是使用 /usr/sbin/rhn-satellite 來啟用或停用 RHN Satellite。

過程 4.2. 配置 Cobbler 系統紀錄

Cobbler 系統紀錄為 Cobbler 中的物件,它會追蹤系統以及其相聯的 kickstart 設定檔。若要進行 PXE kickstart,您將需要確認衛星伺服器的 kickstart 設定檔,已綁定至與您所希望 kickstart 的機器的 Cobbler 系統紀錄。
  1. 請至各系統的 系統詳細資料佈建,並選擇欲相聯的 kickstart 設定檔。
  2. 按下「建立 Cobbler 系統紀錄」以進行相聯。
  3. 此關聯將會遠永存在,除非您將 pxe_just_once 選項設為 true。在此情況下,此關聯將會在成功進行 kickstart 後解除。有關於此設定,請參閱 過程 4.3, “配置 Cobbler 以使用 PXE”

過程 4.3. 配置 Cobbler 以使用 PXE

就預設值,Cobbler 會被設定來產生 PXE 配置,不過若要取得 BIOS 中的最佳 PXE 流程,您可調整 pxe_just_once 配置選項。
  1. 通常,BIOS 順序會將 PXE 開機設為優先。這代表系統不會由本機磁碟啟動,除非 PXE 伺服器進行遠端的指示。這項設定可能會造成開機迴圈(boot loop),也就是系統會持續重新安裝。
    若要避免開機迴圈,請開啟 /etc/cobbler/settings 檔案並新增下列行列:
    pxe_just_once: 1
    
    此設定會在 kickstart 範本中增加一項 $kickstart_done 巨集,這會指示系統在完成安裝後,透過本機磁碟開機,而非透過網路開機。
  2. 若您包含了 pxe_just_once: 1 設定,並且您之後希望重新安裝系統,您將需要啟用系統上的 netboot-enabled 旗標。這可透過使用 RHN Satellite 網站介面,或是直接透過 Cobbler 來完成。當系統下次重新啟動時,它將會執行一項 PXE 安裝,並再次恢復透過本機磁碟開機,直到旗標重新設置。
    若 BIOS 被設為由本機硬碟啟動的話,您便無須啟用 pxe_just_once。然而,若要使用 PXE 來重新佈建系統,您需要將 MBR(master boot record)化零。

命名常規

為了讓 RHN Satellite 與 Cobbler 之間的資料能夠同步,RHN Satellite 針對於發行版與設定檔使用了命名常規。若您透過指令列介面與 Cobbler 進行互動的話,這些命名常規便非常重要。
發行版
$tree_name:$org_id:$org_name(若手動建立的話)
$tree_name(若透過 RHN Satellite 同步的話)
設定檔
$profile_name:$org_id:$org_name

重要

請勿修改由 RHN Satellite 所自動產生的名稱。若名稱遭到更改的話,RHN Satellite 便無法繼續維護這些項目。

注意

為了進行疑難排解,Cobbler 會將資料紀錄製 RHN Satellite 日誌以及 /var/log/cobbler/ 檔案中

4.3. Koan

koan(kickstart over a network)能讓您由已佈建的主機,遠端存取 RHN Satellite。Koan 能讓您進行 kickstart 佈建、建立虛擬客座端(於虛擬主機上),以及列出 RHN Satellite 主機的可用 kickstart。它包含在 koan 套件中。

表格 4.3. Koan 指令

指令 使用方法
man koan 請參閱 koan man page
koan --replace-self --server=satellite.example.org --profile=profile-namekoan --replace-self --server=satellite.example.org --system=system-name 佈建一部既有的系統。請在執行這項指令之後重新啟動,以安裝新的作業系統。這亦可使用來升級 kickstart(比方說將大量機器由某 Red Hat Enterprise Linux 版本升級至另一版本)。
koan --virt --server=satellite.example.org --profile=profile-namekoan --virt --server=satellite.example.org --system=system-name 佈建虛擬客座端
koan --list=profiles --server=satellite.example.orgkoan --list=systems --server=satellite.example.org 查詢 Cobbler 以顯示一列可進行遠端安裝的設定檔或系統之清單

注意

請注意,為了進行疑難排解,Koan 會將資料紀錄在 /var/log/koan 中。

章 5. 疑難排解

5.1. 網站介面
問: 我的 RHN Satellite 使用者介面發生了問題。我該檢查哪個日誌檔案?
5.2. Anaconda
問: 我收到了一則 Error downloading kickstart file 的錯誤。產生問題的原因為何?如何解決這項問題?
問: 我收到了套件安裝錯誤,錯誤訊息為 The file chkconfig-1.3.30.1-2.i386.rpm cannot be opened.。產生問題的原因為何?該如何解決這項問題?
5.3. Traceback
問: 我收到了主旨中含有「 WEB TRACEBAK」的電子郵件。我應該怎麼作?C
5.4. 註冊
問: 當執行 rhnreg_ks 指令時發生了錯誤,錯誤訊息為 ERROR: unable to read system id。產生問題的原因是?
5.5. Kickstart 和程式碼片段
問: Kickstart 的目錄結構為何?
問: Cobbler 程式碼片段的目錄結構為何?

5.1. 網站介面

問:
我的 RHN Satellite 使用者介面發生了問題。我該檢查哪個日誌檔案?
答:
若您在 RHN Satellite 使用者介面中發生了檢視、排程,或使用 kickstart 上的錯誤,請檢查 /var/log/tomcat5/catalina.out 日誌檔案。
有關於所有其它使用者介面錯誤,請檢查 /var/log/httpd/error_log 日誌檔案。

5.2. Anaconda

問:
我收到了一則 Error downloading kickstart file 的錯誤。產生問題的原因為何?如何解決這項問題?
答:
這項錯誤一般是因為網路問題所產生。若要找出問題,請執行 cobbler check 指令,並查看輸出,輸出會看似:
# cobbler check
The following potential problems were detected:
#0: reposync is not installed, need for cobbler reposync, install/upgrade yum-utils?
#1: yumdownloader is not installed, needed for cobbler repo add with --rpm-list parameter, install/upgrade yum-utils?
#2: The default password used by the sample templates for newly installed machines (default_password_crypted in /etc/cobbler/settings) is still set to 'cobbler' and should be changed
#3: fencing tools were not found, and are required to use the (optional) power management features. install cman to use them
cobbler check 未提供任何答案,請檢查下列:
  • 驗證 httpd 是否運作中:service httpd status
  • 驗證 cobblerd 是否運作中:service cobblerd status
  • 驗證您是否能夠由不同主機使用 wget,以取得 kickstart 檔案:
    wget http://satellite.example.com/cblr/svc/op/ks/profile/rhel5-i386-u3:1:Example-Org
問:
我收到了套件安裝錯誤,錯誤訊息為 The file chkconfig-1.3.30.1-2.i386.rpm cannot be opened.。產生問題的原因為何?該如何解決這項問題?
答:
客戶端將會根據包含在 kickstart 中的 --url 參數來由 RHN Satellite 取得內容。例如:
url --url http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3
若您收到了來自於 Anaconda 的錯誤,顯示它找不到映像檔或套件,檢查 kickstart 中的 URL 是否會產生一則 200 OK 回應。您可藉由嘗試 wget 位於該 URL 的檔案來這麼作:
wget http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3
--2011-08-19 15:06:55--  http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3
Resolving satellite.example.com... 10.10.77.131
Connecting to satellite.example.com|10.10.77.131|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 0 [text/plain]
Saving to: `ks-rhel-i386-server-5-u3.1'
2011-08-19 15:06:55 (0.00 B/s) - `ks-rhel-i386-server-5-u3.1' saved [0/0]
若您收到了 200 OK 以外的回應的話,請檢查錯誤紀錄,以找出問題。您亦可透過搜尋 access_log 檔案,以檢查 Anaconda 嘗試下載的實際檔案:
# grep chkconfig /var/log/httpd/access_log
10.10.77.131 - - [19/Aug/2011:15:12:36 -0400] "GET /rhn/common/DownloadFile.do?url=/ks/dist/ks-rhel-i386-server-
5-u3/Server  /chkconfig-1.3.30.1-2.i386.rpm HTTP/1.1" 206 24744 "-" "urlgrabber/3.1.0 yum/3.2.19"
10.10.76.143 - - [19/Aug/2011:15:12:36 -0400] "GET /ks/dist/ks-rhel-i386-server-5-u3/Server/chkconfig-
1.3.30.1-2.i386.rpm HTTP/1.1" 206 24744 "-" "urlgrabber/3.1.0 yum/3.2.19"
10.10.76.143 - - [19/Aug/2011:15:14:20 -0400] "GET /ks/dist/ks-rhel-i386-server-5-u3/Server/chkconfig-  
1.3.30.1-2.i386.rpm HTTP/1.1" 200 162580 "-" "urlgrabber/3.1.0 yum/3.2.19"
10.10.77.131 - - [19/Aug/2011:15:14:20 -0400] "GET /rhn/common/DownloadFile.do?url=/ks/dist/ks-rhel-i386-server- 
5-u3/Server/chkconfig-1.3.30.1-2.i386.rpm HTTP/1.1" 200 162580 "-" "urlgrabber/3.1.0 yum/3.2.19"
若這些請求沒有出現在 access_log 檔案中,系統的網路作業設定可能有問題。若請求有出現,不過卻產生了錯誤,請檢查錯誤紀錄。
您亦可嘗試手動式下載這些檔案,以查看套件是否可使用:
wget http://satellite.example.com/ks/dist/ks-rhel-i386-server-5-u3/Server/chkconfig-1.3.30.1-2.i386.rpm

5.3. Traceback

問:
我收到了主旨中含有「 WEB TRACEBAK」的電子郵件。我應該怎麼作?C
答:
典型的 traceback 電子郵件可能會看似:
Subject: WEB TRACEBACK from satellite.example.com
Date: Wed, 19 Aug 2011 20:28:01 -0400
From: RHN Satellite <dev-null@redhat.com>
To: admin@example.com

java.lang.RuntimeException: XmlRpcException calling cobbler.
	at com.redhat.rhn.manager.kickstart.cobbler.CobblerXMLRPCHelper.invokeMethod(CobblerXMLRPCHelper.java:72)
	at com.redhat.rhn.taskomatic.task.CobblerSyncTask.execute(CobblerSyncTask.java:76)
	at com.redhat.rhn.taskomatic.task.SingleThreadedTestableTask.execute(SingleThreadedTestableTask.java:54)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
Caused by: redstone.xmlrpc.XmlRpcException: The response could not be parsed.
	at redstone.xmlrpc.XmlRpcClient.handleResponse(XmlRpcClient.java:434)
	at redstone.xmlrpc.XmlRpcClient.endCall(XmlRpcClient.java:376)
	at redstone.xmlrpc.XmlRpcClient.invoke(XmlRpcClient.java:165)
	at com.redhat.rhn.manager.kickstart.cobbler.CobblerXMLRPCHelper.invokeMethod(CobblerXMLRPCHelper.java:69)
	... 4 more
Caused by: java.io.IOException: Server returned HTTP response code: 503 for URL: http://someserver.example.com:80/cobbler_api
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1236)
	at redstone.xmlrpc.XmlRpcClient.handleResponse(XmlRpcClient.java:420)
	... 7 more
這顯示了 Cobbler 和 taskomatic 服務的通訊之間發生了問題。請檢查下列:
  • 驗證 httpd 是否運作中:service httpd status
  • 驗證 cobblerd 是否運作中:service cobblerd status
  • 驗證沒有會造成 localhost 連線失效的防火牆規則

5.4. 註冊

問:
當執行 rhnreg_ks 指令時發生了錯誤,錯誤訊息為 ERROR: unable to read system id。產生問題的原因是?
答:
在 kickstart 最後有個 %post 部份,這會使您的機器向 RHN Satellite 註冊:
# begin Red Hat management server registration
mkdir -p /usr/share/rhn/
wget http://satellite.example.com/pub/RHN-ORG-TRUSTED-SSL-CERT -O /usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT   
perl -npe 's/RHNS-CA-CERT/RHN-ORG-TRUSTED-SSL-CERT/g' -i /etc/sysconfig/rhn/*  
rhnreg_ks --serverUrl=https://satellite.example.com/XMLRPC --sslCACert=/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT --activationkey=1-c8d01e2f23c6bbaedd0f6507e9ac079d
# end Red Hat management server registration
依照加入的順序來編譯它,這將會:
  • 建立一個目錄以存放 RHN Satellite 所使用的自訂 SSL 憑證。
  • 擷取欲在進行註冊時使用的 SSL 憑證。
  • 這會按照順序建立一個目錄,以存放 RHN Satellite 所使用的自訂 SSL 憑證、取得 SSL 憑證以使用於註冊時、搜尋並取代來自於 rhn-register 配置檔案的 SSL 憑證字串,並透過使用 SSL 憑證和啟動金鑰來向 RHN Satellite 註冊。所有的 kickstart 設定檔皆包含了一組啟動金鑰,這組金鑰可確保系統已被分配了正確的基礎和子頻道,並且取得了正確的系統權利。若是要佈建既有的系統,啟動金鑰也會確認這部系統是否與先前的系統設定檔相聯。
rhnreg_ks 指令失敗的話,您可能會在 ks-post.log 日誌檔案中看見類似此的錯誤顯示:
ERROR: unable to read system id.
若您嘗試執行一項 rhn_check,並且系統尚未向 RHN Satellite 註冊的話,這些錯誤便會發生。
針對於此的最佳疑難排解方式,就是檢視 kickstart 檔案,並在 kickstart 完成後,將上述的四個步驟複製至指令提示列中。這會產生有幫助的錯誤訊息,以協助您找出發生了甚麼問題。

5.5. Kickstart 和程式碼片段

問:
Kickstart 的目錄結構為何?
答:
儲存 kickstart 檔案的基礎路徑為 /var/lib/rhn/kickstarts/。在此目錄中,原生(非精靈產生)的 kickstart 位於 upload 子目錄中,而由精靈所產生的 kickstart 則位於 wizard 子目錄中:
Raw Kickstarts: /var/lib/rhn/kickstarts/upload/$profile_name--$org_id.cfg
Wizard Kickstarts: /var/lib/rhn/kickstarts/wizard/$profile_name--$org_id.cfg
問:
Cobbler 程式碼片段的目錄結構為何?
答:
Cobbler 的程式碼片段儲存在 /var/lib/rhn/kickstarts/snippets 中。Cobbler 會透過使用符號連結 /var/lib/cobbler/snippets/spacewalk 來存取程式碼片段。
Snippets:  /var/lib/rhn/kickstarts/snippets/$org_id/$snippet_name

重要

RHN Satellite 的 RPM 會預期 Cobbler kickstart 和程式碼片段目錄位於它們的預設位置上,請勿更改這些位置。

附錄 A. 修訂記錄

修訂記錄
修訂 4-2.3.4002013-10-31Rüdiger Landmann
Rebuild with publican 4.0.0
修訂 4-2.3Mon Mar 11 2013Terry Chuang
翻譯、校閱完成
修訂 4-2.2Wed Mar 6 2013Terry Chuang
翻譯完成
修訂 4-2.1Thu Feb 21 2013Terry Chuang
翻譯檔案已與 XML 來源 4-2 同步
修訂 4-2Wed Sept 19 2012Dan Macpherson
5.5 版最後一次製成套件
修訂 4-1Thu Aug 9 2012Athene Chan
放上中繼伺服器以供發行
修訂 4-0Mon June 25 2012Athene Chan
更新了 RHN Satellite 5.5 的章節 1 和 2
編輯了 RHN Satellite 5.5 的章節 3 到 5
BZ#787348 錯誤的 Cobbler iptables 行列
BZ#702529 新增了額外的 Kickstart 資訊
BZ#797688 Cobbler Boot ISO 不受支援
修訂 3-0Thu May 31 2012Athene Chan
BZ#826803 - 修正了「Kickstart 一部機器」部分中的標點符號
小幅修正了 kickstart 部分中的文法。
修訂 2-0Thu May 24 2012Athene Chan
BZ#783339 - 重新編排了「佈建疑難排解 Taskomatic」部分中的句詞
BZ#783340 - 已將「s390x」更新為「IBM System z」
修訂 1-3Mon Aug 15 2011Lana Brindley
將 z-stream 版本的資料放入 y-stream 中
修訂 1-2Wed Jun 15 2011Lana Brindley
已準備出版
修訂 1-1Fri May 27 2011Lana Brindley
來自譯者的更新
修訂 1-0Fri May 6, 2011Lana Brindley
Final QE Review 編輯
已準備好進行翻譯
修訂 0-8Thu May 5, 2011Lana Brindley
BZ#701822 - QE Review
修訂 0-7Thu April 14, 2011Lana Brindley
技術檢視意見
修訂 0-6Wed March 23, 2011Lana Brindley
準備進行技術檢視
修訂 0-5Tue March 22, 2011Lana Brindley
BZ#666435
BZ#666846
BZ#678080
BZ#682364
修訂 0-4Tue March 22, 2011Lana Brindley
疑難排解
修訂 0-3Mon March 21, 2011Lana Brindley
多重衛星伺服器
修訂 0-2Thu March 17, 2011Lana Brindley
簡介
Kickstart
進階指令
部份章節重建
修訂 0-1Wed Jan 5, 2011Lana Brindley
已完成新章節的結構
修訂 0-0Tue Dec 21, 2010Lana Brindley
由 RHN 衛星伺服器建置指南新建了文件

法律聲明

Copyright © 2011 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.