以規則為基礎的自動安裝

下列章節介紹使用 AutoYaST 以規則為基礎的安裝的基本概念,並提供案例範例讓您能夠建立您自己的自定安裝設定。

瞭解以規則為基礎的自動安裝

以規則為基礎的 AutoYaST 安裝讓您能夠處理異質的硬體環境:

  • 您的網站包含不同廠商的硬體嗎?

  • 您的網站上的機器採用不同硬體組態嗎 (例如,使用不同設備,或配備不同記憶體和磁碟大小)?

  • 您打算跨越網域進行安裝,而且必須加以區別嗎?

基本上,以規則為基礎的自動安裝會將數個設定檔合併成一個,來產生符合異質案例的自定設定檔。每個規則會描述設定中的一個特色 (例如磁碟大小),並告訴 AutoYaST 當規則符合時要使用哪個設定檔。描述設定中不同特色的數個規則合併在一個 AutoYaST rules.xml 檔案中。然後 AutoYaST 會處理規則堆疊,並將符合 AutoYaST 規則的不同設定檔合併成一個,來產生最後的設定檔。如需這個程序的示範,請參閱第 5.2.2 節「以規則為基礎的自動安裝案例範例」

在規劃和執行 SUSE Linux Enterprise 部署時,以規則為基礎的 AutoYaST 為您提供充足的彈性。您可以:

  • 在 AutoYaST中建立符合任何預先定義系統屬性的規則

  • 使用邏輯運算子將多個系統屬性 (如磁碟大小和核心結構) 合併成一個規則

  • 執行外圍程序檔並將輸出傳到 AutoYaST 結構以建立自定規則。自定規則數不得超過 5 個。

[Note]

如需有關 AutoYaST的規則建立和用法的更多資訊,請參閱 /usr/share/doc/packages/autoyast2/html/index.html 中套件文件的Rules and Classes一章。

若要準備進行以規則為基礎的 AutoYaST 大量安裝,請執行下列步驟:

  1. 建立數個 AutoYaST 設定檔,以包含異質設定所需的安裝詳細資料,詳細步驟說明請參閱第 5.1.1 節「建立 AutoYaST 設定檔」

  2. 定義符合硬體設定的系統屬性的規則,詳細步驟說明請參閱第 5.2.2 節「以規則為基礎的自動安裝案例範例」

  3. 決定 AutoYaST 設定檔的來源,以及要傳給安裝常式的參數,詳細步驟說明請參閱第 5.1.2 節「配送設定檔和決定 AutoYaST 參數」

  4. 決定 SUSE Linux Enterprise 安裝資料的來源,詳細步驟說明請參閱第 5.1.3 節「提供安裝資料」

  5. 手動新增參數或建立 info 檔案,以傳送指令行給安裝常式,詳細步驟說明請參閱第 5.1.5 節「建立 info 檔案」

  6. 決定和設定自動安裝的開機方式,詳細步驟說明請參閱第 5.1.4 節「設定開機方式」

  7. 開始自動安裝程序,詳細步驟說明請參閱第 5.1.6 節「啟始和監控自動安裝」

以規則為基礎的自動安裝案例範例

若要對規則的建立方式有基本的瞭解,請參閱圖形 5.2 「AutoYaST 規則」中描述的下列範例。執行 AutoYaST 會安裝下列設定:

列印伺服器

這台機器不需要桌面環境,只需要最基本的安裝,和有限的軟體套件。

工程部門的工作站

這些機器需要桌面環境,和大量開發工具。

銷售部門的筆記型電腦

這些機器需要桌面環境,和有限的專用應用程式,如辦公室和行事曆軟體。

圖形 5.2. AutoYaST 規則

AutoYaST 規則

在第一個步驟中,使用第 5.1.1 節「建立 AutoYaST 設定檔」中說明的一種方法針對每一種案例建立設定檔。在此範例中,您會建立 print.xmlengineering.xmlsales.xml

在第二個步驟中,建立規則來區分三種硬體類型,並告訴 AutoYaST 要使用哪個設定檔。使用類似下列演算法來設定規則:

  1. 機器有 192.168.27.11 這個 IP 嗎?有的話,將它設為列印伺服器。

  2. 機器有 PCMCIA 硬體而且使用 Intel 晶片組嗎?有的話,將它視為 Intel 筆記型電腦,並安裝銷售部門軟體選擇。

  3. 如果上述條件都不成立,則將該機器視為開發工作站,並據此進行安裝。

這可以大致轉換成包含下列內容的 rules.xml 檔案:

<?xml version="1.0"?>
<!DOCTYPE autoinstall SYSTEM "/usr/share/autoinstall/dtd/rules.dtd"> 
<autoinstall xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
  <rules config:type="list">
    <rule>
       <hostaddress>
	    <match>192.168.27.11</match>
            <match_type>exact</match_type>
       </hostaddress>
       <result>
            <profile>print.xml</profile>
            <continue config:type="boolean">false</continue>
        </result>
    </rule>
    <rule>
       <haspcmcia>
            <match>1</match>
            <match_type>exact</match_type>
       </haspcmcia>
       <custom1>
           <script>
if grep -i intel /proc/cpuinfo > /dev/null; then
echo -n "intel"
else
echo -n "non_intel"
fi;
           </script>
           <match>*</match>
           <match_type>exact</match_type>
       </custom1>
       <result>
            <profile>sales.xml</profile>
            <continue config:type="boolean">false</continue>
        </result>
        <operator>and</operator>
    </rule>
    <rule>
        <haspcmcia>
            <match>0</match>
            <match_type>exact</match_type>
        </haspcmcia>
 	<result>
            <profile>engineering.xml</profile>
            <continue config:type="boolean">false</continue>
        </result>
    </rule>
  </rules>
</autoinstall>

配送規則檔案時,必須確定 rules 目錄位於 autoyast=protocol:serverip/profiles/ URL 中指定的 profiles 目錄下。AutoYaST 會尋找包含 rules.xml 檔案的 rules 子目錄,然後載入並合併規則檔案中指定的設定檔。

其餘自動安裝程序依正常方式執行。