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 的任何其他实例一样。