自动安装配置文件
自动安装配置文件决定了如何安装操作系统。例如,您可以指定更多要传递给安装程序的内核参数。
配置文件最重要的部分是“自动安装文件”。手动执行安装时,必须向安装程序提供相关信息,例如分区和网络信息以及用户细节。您可以使用自动安装文件以脚本形式提供此类信息。这种类型的文件有时也称为“答案文件”。
在 SUSE Manager 中,您可以使用两种不同的配置文件,具体取决于您要安装的客户端的操作系统:
-
对于 SUSE Linux Enterprise 或 openSUSE 客户端,请使用 AutoYaST。
-
对于 Red Hat Enterprise Linux 客户端,请使用 Kickstart。
如果您要安装具有不同操作系统的客户端,可以使用 AutoYaST 和 Kickstart 配置文件。
-
有关如何声明配置文件的信息,请参见声明配置文件
-
有关 AutoYaST 配置文件的信息,请参见 AutoYaST 配置文件。
-
有关 Kickstart 配置文件的信息,请参见 Kickstart 配置文件。
配置文件中包含的自动安装文件可以包含变量和代码段。有关变量和代码段的信息,请参见模板语法。
1. 声明配置文件
准备好自动安装文件和发行套件后,您可以创建配置文件来管理 SUSE Manager 服务器上的自动安装。配置文件会决定如何安装您选择的此发行套件。创建配置文件的其中一个方式是上载 AutoYaST 或 Kickstart 文件。或者,您也可以使用 Web UI 向导(仅针对 Kickstart)。
-
在 SUSE Manager Web UI 中,导航到
。 -
单击 上载 Kickstart/AutoYaST 文件。
-
在
标签
字段中,键入配置文件的名称。不要使用空格。 -
在
自动安装树
字段中,选择要用于此配置文件的可自动安装的发行套件。 -
在
虚拟化类型
字段中,选择要用于此配置文件的虚拟化类型,或选择无
(如果您不想使用此配置文件创建新的虚拟机)。 -
将自动安装文件的内容复制到
文件内容
字段,或使用要上载的文件
字段直接上载文件。有关此处要包含的细节的详细信息,请参见 AutoYaST 配置文件 或 Kickstart 配置文件。
-
单击 创建 以创建配置文件。
-
在 SUSE Manager Web UI 中,导航到
。 -
单击 创建 Kickstart 配置文件。
-
在
标签
字段中,键入配置文件的名称。不要使用空格。 -
在
基础通道
字段中,选择要用于此配置文件的基础通道。系统会根据可用的发行套件填充此字段。如果您需要的基础通道不可用,请检查您是否正确创建了发行套件。 -
在
虚拟化类型
字段中,选择要用于此配置文件的虚拟化类型,或选择无
(表示不进行虚拟化)。 -
单击 下一步。
-
在
发行套件文件位置
中,键入 SUSE Manager 服务器上安装的安装媒体的路径。 -
单击 下一步。
-
提供客户端上 root 用户的口令。
-
单击 完成。
-
查看新配置文件的细节,并视需要进行自定义。
创建自动安装配置文件时,您可以选中始终为此基础通道使用最新的树
。此设置可让 SUSE Manager 自动提取与指定基础通道关联的最新发行套件。如果您以后添加新发行套件,SUSE Manager 会使用最近创建或修改的发行套件。
更改虚拟化类型
通常需要更改配置文件加载程序和分区选项。这会重写您的自定义设置。请在保存前导航到分区
选项卡校验新的或更改后的设置。
来自发行套件和配置文件的内核选项会进行合并。
您可以更改自动安装配置文件的细节和设置,方法是导航到
,然后单击要编辑的配置文件的名称。或者,可导航到 ,选择要置备的客户端,然后导航到 子选项卡。2. AutoYaST 配置文件
AutoYaST 配置文件由标识该配置文件的标签
、指向可自动安装的发行套件的自动安装树
、各种选项以及最重要的 AutoYaST 安装文件组成。
AutoYaST 安装文件是一个 XML 文件,用于向 AutoYaST 安装程序提供指示。AutoYaST 将其称为“控制文件”。有关 AutoYaST 安装文件的完整语法,请参见 https://doc.opensuse.org/projects/autoyast/#cha-configuration-installation-options。
SUSE 提供了 AutoYaST 安装文件模板,您可以基于它们创建自己的自定义文件。您可在 https://github.com/SUSE/manager-build-profiles 上的 AutoYaST
目录中找到这些模板。使用前,需要为其中的每个配置文件设置一些变量。请参见脚本随附的 README
文件确定您需要的变量。有关在 AutoYaST 脚本中使用变量的详细信息,请参见变量。
在 AutoYaST 安装文件中,用于通过 SUSE Manager 安装的最重要的部分如下:
-
<add-on>
用于向安装添加子通道请参见 https://doc.opensuse.org/projects/autoyast/#Software-Selections-additional[],其中包含 ``<add-on>`` 示例
-
<general>$SNIPPET('spacewalk/sles_no_signature_checks')</general>
禁用签名检查 -
<software>
用于为 Unified Installer 指定产品请参见 https://doc.opensuse.org/projects/autoyast/#CreateProfile-Software[],其中包含“<software>”示例
-
<init-scripts config:type="list">$SNIPPET('spacewalk/minion_script')</init-scripts>
用于将客户端作为 Salt 客户端注册到 SUSE Manager。
有关 AutoYaST 的详细信息,请参见 https://doc.opensuse.org/projects/autoyast/。
近期一个基于 Salt 的方案 Yomi 可替代 AutoYaST。有关 Yomi 的信息,请参见 使用 Yomi 安装。
3. Kickstart 配置文件
Kickstart 配置文件提供了大量配置选项。要创建这些配置文件,您可以上载它们,也可以使用专用向导。
Kickstart 配置文件允许您使用文件保留列表。如果您有许多自定义配置文件位于要使用 Kickstart 重新安装的客户端上,则可以将它们保存为列表,并将该列表与 Kickstart 配置文件相关联。
-
在 SUSE Manager Web UI 中,导航到
,然后单击 创建文件保留列表。 -
输入适当的标签,并列出要保存的所有文件和目录的绝对路径。
-
单击 创建列表。
-
将该文件保留列表包含到 Kickstart 配置文件中。
-
导航到
,选择要编辑的配置文件,转到 子选项卡,然后选择要包含的文件保留列表。
文件保留列表总大小上限为 1 MB。 |
有关 Kickstart 的详细信息,请参见 Red Hat 文档。
4. 模板语法
安装文件的部分内容在安装过程中会被替换。变量会被替换为相应的单个值,代码段会被替换为整段文本。转义符或转义部分不会被替换。
名为 Cheetah 的模板引擎允许 Cobbler 进行这些替换。利用此机制,您在重新安装大量系统时就无需为每个系统手动创建配置文件。
您可以在 SUSE Manager Web UI 中创建自动安装变量和代码段。在配置文件中,自动安装文件
选项卡可让您查看替换的结果。
4.1. 变量
可以使用自动安装变量来替换 Kickstart 和 AutoYaST 配置文件中的值。要定义变量,请从配置文件中导航到变量
子选项卡,然后在文本框中创建 name=value
对。
例如,您可以创建一个变量来存储客户端的 IP 地址,创建另一个变量来存储其网关的地址。然后可以为通过同一配置文件安装的所有客户端定义这些变量。要执行此操作,请将下面几行添加到变量
文本框中:
ipaddr=192.168.0.28 gateway=192.168.0.1
要使用变量,请在配置文件中附加一个 $
符号来替换相应值。例如,Kickstart 文件的 network
部分可能如下所示:
network --bootproto=static --device=eth0 --onboot=on --ip=$ipaddr \ --gateway=$gateway
$ipaddr
会解析为 192.168.0.28
,$gateway
会解析为 192.168.0.1
。
在安装文件中,变量使用层次结构。系统变量优先于配置文件变量,而配置文件变量优先于发行套件变量。
4.2. 代码段
SUSE Manager 附带了大量预定义的代码段。导航到
,以查看现有代码段列表。通过在自动安装文件中插入 $SNIPPET()
宏来使用代码段。例如,在 Kickstart 中,插入该宏:
$SNIPPET('spacewalk/rhel_register_script')
或者,在 AutoYaST 中,插入该宏:
<init-scripts config:type="list"> $SNIPPET('spacewalk/sles_register_script') </init-scripts>
宏会经过 Cobbler 的分析,并会替换为代码段的内容。您还可以存储自己的代码段,以供日后在自动安装文件中使用。单击 创建代码段 以创建新代码段。
下面的示例设置了通用硬盘分区配置的 Kickstart 代码段:
clearpart --all part /boot --fstype ext3 --size=150 --asprimary part / --fstype ext3 --size=40000 --asprimary part swap --recommended part pv.00 --size=1 --grow volgroup vg00 pv.00 logvol /var --name=var vgname=vg00 --fstype ext3 --size=5000
下面是使用该代码段的一个示例:
$SNIPPET('my_partition')
4.3. 转义
如果自动安装文件包含 $(example)
这样的外壳脚本变量,则需要使用反斜杠对内容进行转义:\$(example)
。对 $
符号进行转义可防止模板引擎将该符号评估为内部变量。
可以使用 \#raw
和 \#end raw
指令封装代码段或脚本等文本块,从而对其转义。例如:
#raw #!/bin/bash for i in {0..2}; do echo "$i - Hello World!" done #end raw
所有包含 #
符号后接空格的行均视为注释行,因此不会对其进行评估。例如:
# start some section(此为注释) echo "Hello, world" # end some section(此为注释)