20 部署自定义预安装 #
将自定义的 SUSE Linux Enterprise Server 预安装版本部署到许多相同的计算机上,可为您免除一个个单独安装的麻烦,同时为最终用户提供了标准化安装。
利用 YaST 首次引导功能,可以创建自定义预安装映像,并确定涉及最终用户交互的最终个性化步骤对应的工作流程(AutoYaST 则不同,它允许采用完全自动化的安装方式)。
创建自定义安装、部署到硬件及使最终产品个性化包括以下步骤:
- 准备磁盘需要克隆到客户端的主计算机。有关详细信息,请参见第 20.1 节 “准备主计算机”。 
- 自定义 firstboot 工作流程。有关详细信息,请参见第 20.2 节 “自定义首次引导安装”。 
- 复制主计算机磁盘,将映像转到客户端磁盘上。有关详细信息,请参见第 20.3 节 “克隆主安装”。 
- 让最终用户个性化 SUSE Linux Enterprise Server 的实例。有关详细信息,请参见第 20.4 节 “个性化安装”。 
20.1 准备主计算机 #
为 firstboot 工作流程准备主计算机,请按以下步骤操作:
- 将安装媒体插入主计算机中。 
- 引导计算机。 
- 执行正常的安装流程(包括所有必要的配置步骤),确保选择安装 - yast2-firstboot软件包。
- 要对最终用户 YaST 配置步骤定义自己的工作流程,或将自己的 YaST 模块添加到该工作流程,请转到第 20.2 节 “自定义首次引导安装”。否则的话,直接转到步骤 5。 
- 以 - root身份启用首次引导:- 创建空文件 - /var/lib/YaST2/reconfig_system以触发首次引导的执行。成功完成首次引导配置后,此文件将删除。用以下命令创建该文件:- touch /var/lib/YaST2/reconfig_system 
20.2 自定义首次引导安装 #
自定义首次引导安装工作流程可能涉及数个组件。建议对它们进行自定义。如果不做任何更改,firstboot 会用默认设置执行安装。下列选项可用:
- 按第 20.2.1 节 “自定义 YaST 消息”中所述自定义用户收到的消息。 
- 按第 20.2.2 节 “自定义许可操作”中所述自定义许可证和许可证操作。 
- 按第 20.2.3 节 “自定义发行说明”中所述自定义要显示的发行说明。 
- 按第 20.2.4 节 “自定义工作流程”中所述自定义安装中涉及的组件的顺序和编号。 
- 按第 20.2.5 节 “配置附加脚本”中所述配置其他可选脚本。 
要自定义其中的任何组件,请修改以下配置文件:
- /etc/sysconfig/firstboot
- 配置 firstboot 的不同方面(例如发行说明、脚本和许可证操作)。 
- /etc/YaST2/firstboot.xml
- 通过启用或禁用组件或者添加自定义组件,配置安装工作流程。 - 如第 20.2.6 节 “提供安装工作流程的翻译”中所述,提供此类自定义安装工作流程的翻译。 提示:控制文件的替代位置- /etc/YaST2/firstboot.xml是- yast2-firstboot软件包安装的控制文件的默认路径。如果您需要为控制文件指定其他位置,请编辑- /etc/sysconfig/firstboot,将- FIRSTBOOT_CONTROL_FILE变量更改为您首选的位置。
   如果要自定义的不仅仅是工作流程组件,请参见 control.xml 上的 https://doc.opensuse.org/projects/YaST/SLES11/tdg/inst_in_general_chap.html#product_control 文档。
  
20.2.1 自定义 YaST 消息 #
默认情况下,SUSE Linux Enterprise Server 的安装包含一些已本地化并会显示于安装过程特定阶段的默认消息。这些消息包括欢迎消息、许可证消息和安装结束时的祝贺消息。您可以将其中任何消息替换成自己的版本,并在安装中包含它们的本地化版本。要包含您自己的欢迎消息,请按以下步骤继续:
- 以 - root身份登录。
- 打开 - /etc/sysconfig/firstboot配置文件,并应用以下更改:- 将 - FIRSTBOOT_WELCOME_DIR设置为要存储包含欢迎消息和本地化版本的文件的目录路径,例如:- FIRSTBOOT_WELCOME_DIR="/usr/share/firstboot/" 
- 如果欢迎消息的相应文件名不是 - welcome.txt和- welcome_locale.txt(其中,locale 与诸如“cs”或“de”的 ISO 639 语言代码相匹配),请在- FIRSTBOOT_WELCOME_PATTERNS中指定文件名模式。例如:- FIRSTBOOT_WELCOME_PATTERNS="mywelcome.txt" - 如未设置,将假定为默认值 - welcome.txt。
 
- 创建欢迎文件和本地化版本,并将其存放在 - /etc/sysconfig/firstboot配置文件中指定的目录内。
    按类似方法继续,配置自定义许可证并完成消息。这些变量为 FIRSTBOOT_LICENSE_DIR 和 FIRSTBOOT_FINISH_FILE。
   
    如果用户需要在执行安装后能够直接启动 YaST,请将 SHOW_Y2CC_CHECKBOX 更改为“Yes”。
   
20.2.2 自定义许可操作 #
您可以自定义安装系统对不接受许可协议的用户所做出的反应。对于此情况,系统可采取以下三种不同的应对方式:
- halt
- firstboot 安装已中止,整个系统关闭。这是默认设置。 
- continue
- firstboot 安装继续。 
- abort
- firstboot 安装已中止,但系统尝试引导。 
    选择所需的选项,并将 LICENSE_REFUSAL_ACTION 设置为适当的值。
   
20.2.3 自定义发行说明 #
根据您是否更改了要通过首次引导部署的 SUSE Linux Enterprise Server 实例,可能需要让最终用户了解新操作系统的重要方面。标准安装使用发行说明(在安装的最后阶段之一显示),目的是为用户提供重要信息。要让您自己修改过的发行说明作为 firstboot 安装的一部分显示,请执行以下步骤:
- 创建您自己的发行说明文件。如 - /usr/share/doc/release-notes中的示例文件所示使用 RTF 格式,并将结果另存为- RELEASE-NOTES.en.rtf(英语)。
- 在原始版本旁边存储可选本地化版本,并将文件名中的 - en部分替换为实际的 ISO 639 语言代码,如用- de表示德语。
- 从 - /etc/sysconfig/firstboot打开首次引导配置文件,并将- FIRSTBOOT_RELEASE_NOTES_PATH设置为存储发行说明文件的实际目录。
20.2.4 自定义工作流程 #
    提供的 /etc/YaST2/firstboot.xml 示例定义了一个标准工作流程,其中包含下列启用的组件:
   
- 语言选择 
- 欢迎 
- 许可协议 
- 时间和日期 
- 用户 
- Root 口令 
- 完成安装 
    请注意,此工作流程是一个模板。您可以手动编辑首次引导配置文件 /etc/YaST2/firstboot.xml,以适当调整此工作流程。该 XML 文件是标准 control.xml 文件的子集,YaST 使用后者来控制安装工作流程。请参见例 20.2 “配置工作流程部分”以了解有关如何配置工作流程部分的详细信息。
   
如需简要了解建议,请参见例 20.1 “配置建议屏幕”。此概述所提供的背景知识足够您用于修改 firstboot 安装工作流程。下面的示例说明了首次引导配置文件的基本语法(以及关键元素的配置方式)。
    …
    <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>| 所有提议的容器都应是 firstboot 工作流程的一部分。 | |
| 各条提议的容器。 | |
| 提议的内部名称。 | |
| 
      该提议的方式。不要在此处作任何更改。对于 安装,必须设置为  | |
| 
      调用此提议的安装过程阶段。不要在此处作任何更改。对于 安装,必须设置为  | |
| 提议上要显示的标签。 | |
| 所有属于提议屏幕的模块的容器。 | |
| 属于提议屏幕的一个或多个模块。 | 
firstboot 配置文件的下一部分由工作流程定义组成。此处必须列出应为 firstboot 安装工作流程一部分的所有模块。
    <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 “配置建议屏幕”中所介绍的建议相同的阶段、标签和模式信息。最显著的差别是 defaults 部分,它包含工作流程组件的基本设计信息:
   
- enable_back
- 在所有对话框中包含按钮。 
- enable_next
- 在所有对话框中包含按钮。 
- archs
- 指定使用该工作流程的硬件体系结构。 
<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>
要更改 firstboot 安装过程中提议屏幕的编号或顺序,请按以下步骤操作:
- 在 - /etc/YaST2/firstboot.xml处打开首次引导配置文件。
- 删除或添加提议屏幕,或更改现有提议屏幕的顺序: - 要删除整个提议,请从 - proposals部分去除- proposal元素(包括其所有子元素),并从工作流程中去除相应的- module元素(及子元素)。
- 要添加新的提议,请创建新的 - proposal元素,并填入所有必需的子元素。请确保建议以 YaST 模块形式存在于- /usr/share/YaST2/clients中。
- 要更改提议的顺序,请在工作流程中前后移动包含提议屏幕的各个 - module元素。请注意,有些步骤可能依赖于其他安装步骤,需要提议和工作流程组件按特定顺序排列。
 
- 应用更改并关闭配置文件。 
如果默认设置不能满足您的需求,您随时都可更改配置步骤的工作流程。启用或禁用工作流程中的特定模块(或添加您自己的自定义模块)。
要切换 firstboot 工作流程中模块的状态,请按以下步骤操作:
- 打开 - /etc/YaST2/firstboot.xml配置文件。
- 将 - enabled元素的值从- true更改为- false可禁用该模块,从- false更改为- true可再次启用它。- <module> <label>Time and Date</label> <enabled config:type="boolean">true</enabled> <name>firstboot_timezone</name> </module>
- 应用更改并关闭配置文件。 
要向工作流程添加自定义模块,请按以下步骤继续:
- 创建您自己的 YaST 模块,并将模块文件 - module_name.rb存储在- /usr/share/YaST2/clients中。
- 打开 - /etc/YaST2/firstboot.xml配置文件。
- 确定您的新模块要在工作流程的哪一点运行。这样做时,请确保已考虑并解决工作流程中对其他步骤的任何依赖关系。 
- 在 - modules容器中创建一个新的- module元素,并添加适当的子元素:- <modules config:type="list"> … <module> <label>my_module</label> <enabled config:type="boolean">true</enabled> <name>filename_my_module</name> </module> </modules>- 在 - label元素中输入要在模块上显示的标签。
- 请确保 - enabled设置为- true,将您的模块包括在工作流程中。
- 在 - name元素中输入您模块的文件名。省略完整路径和- .rb后缀。
 
- 应用您的设置并关闭配置文件。 
     如果目标硬件可以有多个网络接口,请将 network-autoconfig 软件包添加到应用程序映像。network-autoconfig 会逐个尝试所有可用的以太网接口,直到通过 DHCP 成功配置某个接口。
    
20.2.5 配置附加脚本 #
可配置 firstboot,使之在完成 firstboot 工作流程后执行其他脚本。要向 firstboot 序列添加其他脚本,请执行以下步骤:
- 打开 - /etc/sysconfig/firstboot配置文件,确保为- SCRIPT_DIR指定的路径正确无误。默认值为- /usr/share/firstboot/scripts.
- 创建您的外壳脚本,将它保存在指定的目录中,应用适当的文件许可权限。 
20.2.6 提供安装工作流程的翻译 #
    根据最终用户,可能需要提供自定义工作流程的翻译。如果您按照第 20.2.4 节 “自定义工作流程”中所述通过更改 /etc/YaST2/firstboot.xml 文件自定义了工作流程,则可能需要提供这些翻译。 
   
    如果您更改了 /etc/YaST2/firstboot.xml 并引入了字符串更改,请生成新的翻译模板文件(.pot 文件),然后使用 gettext 工具链翻译该文件,最后将翻译的文件作为经过编译的 .mo 文件安装到 YaST 区域设置目录 (/usr/share/YaST2/locale) 中。按如下所示继续:
   
- 例如,将 - textdomain设置从- <textdomain>firstboot</textdomain> - 更改为: - <textdomain>firstboot-oem</textdomain> 
- 使用 - xgettext将可翻译字符串提取到翻译模板文件(- .pot文件)中,例如提取到- firstboot-oem.pot中:- xgettext -L Glade -o firstboot-oem.pot /etc/YaST2/firstboot.xml 
- 开始翻译过程。然后像打包其他项目的翻译内容一样打包这些翻译的文件( - .LL_code.po文件),并安装已编译的- firstboot-oem.mo文件。
如果需要其他或已更改 YaST 模块的翻译,请在此类模块自身内提供翻译。如果更改了某个现有模块,请务必同时更改它的 text-domain 语句,以免产生意外的不利影响。
有关 YaST 开发的更多信息,请参见 https://en.opensuse.org/openSUSE:YaST_development。有关 YaST 首次引导的详细信息可以在 https://doc.opensuse.org/projects/YaST/SLES11/tdg/bk09ch01s02.html 上找到。
20.3 克隆主安装 #
用您可以获得的任何映象机制复制主计算机磁盘,将映象转到目标计算机。有关映像的详细信息,请参见https://doc.suse.com/kiwi/。
20.4 个性化安装 #
引导克隆的磁盘映像后,首次引导功能会启动,并且安装会完全按第 20.2.4 节 “自定义工作流程”中的安排继续。只有 firstboot 工作流程配置中包含的组件会启动。所有其他安装步骤都将跳过。最终用户可调整语言、键盘、网络和口令设置,以个性化工作站。此过程完成后,首次引导安装的系统的行为就会和 SUSE Linux Enterprise Server 的任何其他实例一样。