章 20. 部署自定的預先安裝

目錄

20.1. 備妥主要機器
20.2. 自定 firstboot 安裝
20.3. 複製主要安裝
20.4. 個人化安裝

SUSE Linux Enterprise Server 的自定預先安裝轉出到大量的相同機器上,可使您免除一個個單獨安裝的麻煩,並為終端使用者提供標準化的安裝。使用 YaST 首次開機,可以建立自定的預先安裝影像,並決定需要終端使用者互動之最終個人化步驟的工作流程 (這與允許完全自動安裝的 AutoYaST 不同,如需詳細資訊,請參閱第 21 章「自動安裝)。

建立自定安裝、轉出至您的硬體並個人化最終產品,包括下列步驟:

  1. 備妥其磁碟需要複製到用戶端機器的主要機器。若需更多資訊,請參閱第 20.1 節「備妥主要機器」

  2. 自定化第一次開機工作流程。若需更多資訊,請參閱第 20.2 節「自定 firstboot 安裝」

  3. 複製主要機器的磁碟,並將影像轉出到用戶端磁碟。若需更多資訊,請參閱第 20.3 節「複製主要安裝」

  4. 讓終端使用者個人化 SUSE Linux Enterprise Server 例項。若需更多資訊,請參閱第 20.4 節「個人化安裝」

20.1. 備妥主要機器

若要備妥主要機器進行第一次開機工作流程,請遵循下列步驟:

  1. 將安裝媒體插入主要機器中。

  2. 開機。

  3. 執行包括所有必要組態步驟的一般安裝,並等待安裝的機器開機。同時安裝 yast2-firstboot 套件。

  4. 若要為終端使用者定義您自己的 YaST 組態步驟工作流程,或將您自己的 YaST 模組新增到此工作流程,請繼續第 20.2 節「自定 firstboot 安裝」。否則請直接執行步驟 5

  5. root 身分啟用首次開機︰

    建立空白檔案 /var/lib/YaST2/reconfig_system 以觸發 firstboot 的執行。成功完成首次開機組態設定後,將會刪除此檔案。使用下列指令建立此檔案:

    touch /var/lib/YaST2/reconfig_system
  6. 繼續進行第 20.3 節「複製主要安裝」

20.2. 自定 firstboot 安裝

自定首次開機安裝工作流程可能會涉及到多個不同的元件。自定是選擇性的。若您不希望進行變更,firstboot 會使用預設設定進行安裝。可用的選項如下:

若要自定這些元件,請修改下列組態檔:

/etc/sysconfig/firstboot

設定 firstboot 的各項設定,如版本說明、程序檔與授權動作。

/etc/YaST2/firstboot.xml

啟用或停用元件,或新增自定元件,設定安裝工作流程。

第 20.2.6 節「提供安裝工作流程的翻譯」 所述提供此類自定安裝工作流程的翻譯。

如果您要自定的不僅僅是工作流程元件,請參閱 http://doc.opensuse.org/projects/YaST/SLES11/tdg/inst_in_general_chap.html#product_control 處的 control.xml 文件。

20.2.1. 自定 YaST 訊息

依預設,SUSE Linux Enterprise Server 的安裝包含數種已當地化並顯示於各安裝過程特定階段的預設訊息。包括歡迎訊息、授權訊息,以及安裝完畢的恭喜訊息。您可以您自己的版本取代任一個訊息,並將當地語系化版本包含於安裝中。若要包含您個人的歡迎訊息,請如下執行:

  1. root 身分登入。

  2. 開啟 /etc/sysconfig/firstboot 組態檔並套用下列變更:

    1. FIRSTBOOT_WELCOME_DIR 設定為要在其中儲存含有歡迎訊息和當地語系化版本之檔案的目錄路徑,例如:

      FIRSTBOOT_WELCOME_DIR="/usr/share/firstboot/"
      
    2. 如果歡迎訊息使用的檔名不是 welcome.txtwelcome_locale.txt (其中 locale 與 ISO 639 語言代碼相符,例如 csde),請在 FIRSTBOOT_WELCOME_PATTERNS 中指定檔名模式。例如:

      FIRSTBOOT_WELCOME_PATTERNS="mywelcome.txt"

      若未設定的話,會假設使用預設值 welcome.txt

  3. 建立歡迎檔案與當地語系化版本,並將這些檔案放到 /etc/sysconfig/firstboot 組態檔中指定的目錄。

以類似方式設定自定授權與結束訊息。變數為 FIRSTBOOT_LICENSE_DIRFIRSTBOOT_FINISH_FILE

如果使用者在執行安裝後需要能夠直接啟動 YaST,請將 SHOW_Y2CC_CHECKBOX 變更為 yes

20.2.2. 自定授權動作

您可自定當使用者不接受授權合約時安裝系統的反應。系統針對此情況可採取的應對方式有以下三種︰

中斷

firstboot 安裝中止,整個系統關閉。此為預設值。

繼續

firstboot 繼續安裝。

中止

firstboot 安裝中止,但系統會嘗試開機。

進行選擇,並將 LICENSE_REFUSAL_ACTION 設定為適當值。

20.2.3. 自定版本說明

您可能需要培訓您的終端使用者,使其瞭解其新作業系統的重要方面,具體取決於您是否變更了透過首次開機部署的 SUSE Linux Enterprise Server 例項。標準安裝使用版本說明 (會在安裝的某個最後階段顯示) 為使用者提供重要訊息。若要在 firstboot 安裝顯示您修改過的版本說明,請如下操作:

  1. 建立您自己的版本說明檔案。依照 /usr/share/doc/release-notes 中的範例檔案使用 RTF 格式,並將結果儲存為 RELEASE-NOTES.en.rtf (對於英文)。

  2. 將選擇性的當地語系化版本儲存於原始版本旁,並將檔名的 en 部份取代為實際的 ISO 639 語言代碼,如德文就用 de

  3. /etc/sysconfig/firstboot 開啟第一次開機 組態檔,並將 FIRSTBOOT_RELEASE_NOTES_PATH 設定為儲存版本說明檔案的實際目錄。

20.2.4. 自定工作流程

依照預設,標準的第一次開機工作流程包含下列元件:

  • 語言選擇

  • 歡迎

  • 授權書

  • 主機名稱

  • 網路

  • 時間和日期

  • 桌面

  • root 密碼

  • 使用者驗證方式

  • 使用者管理

  • 硬體組態

  • 完成安裝

這個 firstboot 安裝工作流程的標準配置不是強制性的。您可啟用或停用特定元件,或將您自己的模組整合到工作流程中。若要修改第一次開機工作流程,請手動編輯第一次開機組態檔 /etc/YaST2/firstboot.xml。此 XML 檔案為標準 control.xml 檔案的子集,YaST 使用後者來控制安裝工作流程。

如需有關建議的綜覽,請參閱範例 20.1 「設定 proposal 區段」。綜覽會向您提供足夠的背景,以修改首次開機安裝工作流程。此範例介紹首次開機組態檔案的基本語法及關鍵元素的設定方法。

範例 20.1. 設定 proposal 區段

    …
    <proposals config:type="list">1
        <proposal>2
            <name>firstboot_hardware</name>3
            <mode>installation</mode>4
            <stage>firstboot</stage>5
            <label>Hardware Configuration</label>6
            <proposal_modules config:type="list">7
                <proposal_module>printer</proposal_module>8
            </proposal_modules>
        </proposal>
        <proposal>
        …
        </proposal>
    </proposals>
   

1

應為第一次開機工作流程的所有提議之容器。

2

個別提議之容器。

3

提議的內部名稱。

4

此提議的模式。在此不進行任何變更。對於第一次開機安裝,這裡一定要設為 installation

5

此提議所呼叫的安裝程序階段。在此不進行任何變更。對於第一次開機安裝,這裡一定要設為 firstboot

6

要顯示在提議上的標籤。

7

身為提議畫面一部分的所有模組之容器。

8

一或多模組為提議畫面的一部分。

下一段的第一次開機組態檔包含工作流程定義。應為第一次開機安裝工作流程一部分的所有模組,都應該列於此。

範例 20.2. 設定 workflow 區段

    <workflows  config:type="list">
        <workflow>
            <defaults>
                <enable_back>yes</enable_back>
                <enable_next>yes</enable_next>
                <archs>all</archs>
            </defaults>
            <stage>firstboot</stage>
            <label>Configuration</label>
            <mode>installation</mode>
            … <!–– list of modules  ––>
            </modules>
        </workflow>
    </workflows>
    …
  

workflows 區段的整體結構與 proposals 區段非常相似。容器會包含工作流程元素,而工作流程元素均含有階段、標籤與模式資訊,如同範例 20.1 「設定 proposal 區段」 介紹的建議部分。最大的差別在於 defaults 部份,其中包含工作流程元件的基本設計資訊:

enable_back

所有對話方塊都包含包含上一步

enable_next

所有對話方塊都包含下一步

archs

指定會使用此工作流程的硬體結構。

範例 20.3. 設定工作流程元件清單

    <modules  config:type="list">1
        <module>2
            <label>Language</label>3
            <enabled config:type="boolean">false</enabled>4
            <name>firstboot_language</name>5
        </module>
    <modules>
  

1

工作流程所有元件的容器。

2

模組定義。

3

模組顯示的標籤。

4

在此工作流程中啟用或停用此元件的開關。

5

模組名稱。模組本身必須位於 /usr/share/YaST2/clients 下,且檔案名稱結尾必須為 .ycp

若要變更第一次開機安裝過程中的提議畫面數量與順序,請如下操作:

  1. 開啟位於 /etc/YaST2/firstboot.xml 的第一次開機組態檔。

  2. 刪除或新增提議畫面,或變更現有畫面的順序:

    • 若要刪除整個提議,請從提議部分移除提議元素 (包括其所有子元素),並從工作流程中個別移除模組元素 (與子元素)。

    • 若要新增提議,請建立新的提議元素,並填妥所有必填的子元素。確認建議以 YaST 模組形式存在於 /usr/share/YaST2/clients 中。

    • 若要變更提議順序,請在工作流程中移動包含提議畫面的個別模組元件。請注意,其他安裝步驟可能對特定提議順序或工作流程元件具有相依性。

  3. 套用您的變更並關閉組態檔。

您一律可在預設值不符合您需求時,變更組態步驟的工作流程。在工作流程中啟用或停用特定模組,或新增您自定的模組。

若要切換第一次開機工作流程中的模組狀態,請如下操作:

  1. 開啟 /etc/YaST2/firstboot.xml 組態檔。

  2. enabled 元件的值從 true 變更至 false,以停用模組,或從 false 變更為 true,以再次啟用。

    <module>
        <label>Time and Date</label>
        <enabled config:type="boolean">true</enabled>
        <name>firstboot_timezone</name>
    </module>
    
  3. 套用您的變更並關閉組態檔。

若要將自定模組新增到工作流程,請如下操作:

  1. 建立您個人的 YaST 模組,並將模組檔案 module_name.ycp 儲存於 /usr/share/YaST2/clients 中。

  2. 開啟 /etc/YaST2/firstboot.xml 組態檔。

  3. 決定新模組在工作流程中的執行時機。這麼做的時候,請確認您已考量工作流程中其他步驟可能的相依性。

  4. 模組容器中建立新的模組元素,並新增適當的子元素:

    <modules config:type="list">
         …
         <module>
            <label>my_module</label>
            <enabled config:type="boolean">true</enabled>
            <name>filename_my_module</name>
         </module>
    </modules>
    
    1. label 元素中輸入您的模組要顯示的標籤。

    2. 確認 enabled 已設為 true,讓您的模組包含於工作流程中。

    3. name 元素中輸入您模組的檔案名稱。省略完整路徑與 .ycp 字尾。

  5. 套用您的設定並關閉組態檔。

[Tip]為自動組態尋找連接的網路介面

如果目標硬體有多個網路介面,請將 network-autoconfig 套件新增至應用程式影像。network-autoconfig 可確定系統在首次開機期間會循環偵測所有可用的乙太網路介面,直到透過 DHCP 成功設定一個介面為止。

20.2.5. 設定其他程序檔

首次開機可設定為在首次開機工作流程完成後執行其他程序檔。若要將其他程序檔新增至第一次開機序列,請如下操作:

  1. 開啟 /etc/sysconfig/firstboot 組態檔,並確認 SCRIPT_DIR 指定的路徑正確。預設值為 /usr/share/firstboot/scripts

  2. 建立您的外圍程序檔、儲存於指定目錄中,並套用適當的檔案許可權。

20.2.6. 提供安裝工作流程的翻譯

有些終端使用者可能需要提供自定工作流程的翻譯。如果您依第 20.2.4 節「自定工作流程」 所述透過變更 /etc/YaST2/firstboot.xml 檔案自定了工作流程,就可能需要提供這些翻譯。翻譯與自定 YaST 訊息的當地化不同,後者在第 20.2.1 節「自定 YaST 訊息」中已做過介紹。

如果您變更了 /etc/YaST2/firstboot.xml 並引入了字串變更,則請產生一個新的翻譯樣板檔案 (.pot 檔案),並使用 gettext 工具鏈進行翻譯,最後將翻譯好的檔案做為 .mo 編譯檔案安裝到 YaST 的地區設定目錄 (/usr/share/YaST2/locale)。請執行下列步驟:

  1. textdomain 設定從

    <textdomain>firstboot</textdomain>

    變更為,例如,

    <textdomain>firstboot-oem</textdomain>
  2. 使用 xgettext 將可翻譯的字串擷取到翻譯範本檔案 (即 .pot 檔案) 中,例如擷取到 firstboot-oem.pot 檔案中︰

    xgettext -L Glade -o firstboot-oem.pot /etc/YaST2/firstboot.xml
  3. 開始翻譯程序。然後封裝翻譯好的檔案 (.LL_code.po 檔案),方法與封裝其他專案翻譯的方法相同,之後再安裝 firstboot-oem.mo 編譯檔案。

如果您需要其他模組或變更的 YaST 模組的翻譯,請在這類模組自身內提供翻譯。如果只是變更了現有模組,請務必也變更該模組的文字網域陳述,以免出現不可預期的不良後果。

[Tip]更多資訊

如需關於 YaST 開發的詳細資訊,請參閱 http://en.opensuse.org/openSUSE:YaST_development。如需關於 YaST 首次開機的詳細資訊,請造訪 http://doc.opensuse.org/projects/YaST/SLES11/tdg/bk09ch01s02.html

20.3. 複製主要安裝

使用任意一種可用的影像複製機制複製主要機器的磁碟,並將這些影像轉出到目標機器。如需關於複製影像的詳細資訊,請參閱第 17 章「KIWI

20.4. 個人化安裝

複製的磁碟影像開機之後,第一次開機就會如同第 20.2.4 節「自定工作流程」,一模一樣的啟動安裝程序。僅會啟動包含於第一次開機工作流程組態中的元件。而略過其他所有安裝步驟。使用者可調整語言、鍵盤、網路與密碼設定,以個人化工做站。此程序完成之後,所安裝的系統第一次開機時的行為與其他 SUSE Linux Enterprise Server 例項完全相同。


SUSE Linux Enterprise Server 部署指南 11 SP4