自动安装配置文件
自动安装配置文件决定了如何安装操作系统。例如,您可以指定更多要传递给安装程序的内核参数。
配置文件最重要的部分是“自动安装文件”。手动执行安装时,必须向安装程序提供相关信息,例如分区和网络信息以及用户细节。您可以使用自动安装文件以脚本形式提供此类信息。这种类型的文件有时也称为“答案文件”。
在 SUSE Multi-Linux Manager 中,您可以使用两种不同的配置文件,具体取决于您要安装的客户端的操作系统:
-
对于 SUSE Linux Enterprise 或 openSUSE 客户端,请使用 AutoYaST。
-
对于 Red Hat Enterprise Linux 客户端,请使用 Kickstart。
如果您要安装具有不同操作系统的客户端,可以使用 AutoYaST 和 Kickstart 配置文件。
-
有关如何声明配置文件的信息,请参见声明配置文件
-
有关 AutoYaST 配置文件的信息,请参见 AutoYaST 配置文件。
-
有关 Kickstart 配置文件的信息,请参见 Kickstart 配置文件。
配置文件中包含的自动安装文件可以包含变量和代码段。有关变量和代码段的信息,请参见模板语法。
1. 声明配置文件
准备好自动安装文件和发行套件后,您可以创建配置文件来管理 SUSE Multi-Linux Manager 服务器上的自动安装。配置文件会决定如何安装您选择的此发行套件。创建配置文件的其中一个方式是上载 AutoYaST 或 Kickstart 文件。或者,您也可以使用 Web UI 向导(仅针对 Kickstart)。
-
在 SUSE Multi-Linux Manager Web UI 中,导航到
。 -
单击 上载 Kickstart/AutoYaST 文件。
-
在
标签
字段中,键入配置文件的名称。不要使用空格。 -
在
自动安装树
字段中,选择要用于此配置文件的可自动安装的发行套件。 -
在
虚拟化类型
字段中,选择要用于此配置文件的虚拟化类型,或选择无
(如果您不想使用此配置文件创建新的虚拟机)。 -
将自动安装文件的内容复制到
文件内容
字段,或使用要上载的文件
字段直接上载文件。有关此处要包含的细节的详细信息,请参见 AutoYaST 配置文件 或 Kickstart 配置文件。
-
单击 创建 以创建配置文件。
-
在 SUSE Multi-Linux Manager Web UI 中,导航到
。 -
单击 创建 Kickstart 配置文件。
-
在
标签
字段中,键入配置文件的名称。不要使用空格。 -
在
基础通道
字段中,选择要用于此配置文件的基础通道。系统会根据可用的发行套件填充此字段。如果您需要的基础通道不可用,请检查您是否正确创建了发行套件。 -
在
虚拟化类型
字段中,选择要用于此配置文件的虚拟化类型,或选择无
(表示不进行虚拟化)。 -
单击 下一步。
-
在
发行套件文件位置
中,键入 SUSE Multi-Linux Manager 服务器上安装的安装媒体的路径。 -
单击 下一步。
-
提供客户端上 root 用户的口令。
-
单击 完成。
-
查看新配置文件的细节,并视需要进行自定义。
创建自动安装配置文件时,您可以选中始终为此基础通道使用最新的树
。此设置可让 SUSE Multi-Linux Manager 自动提取与指定基础通道关联的最新发行套件。如果您以后添加新发行套件,SUSE Multi-Linux 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 Multi-Linux Manager 安装的最重要的部分如下:
-
<add-on>
用于向安装添加子通道。有关示例,请参见 https://doc.opensuse.org/projects/autoyast/#Software-Selections-additional。 -
<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 Multi-Linux Manager。
有关 AutoYaST 的详细信息,请参见 https://doc.opensuse.org/projects/autoyast/。
近期一个基于 Salt 的方案 Yomi 可替代 AutoYaST。有关 Yomi 的信息,请参见 使用 Yomi 安装。
3. Kickstart 配置文件
Kickstart 配置文件提供了大量配置选项。要创建这些配置文件,您可以上载它们,也可以使用专用向导。
Kickstart 配置文件允许您使用文件保留列表。如果您有许多自定义配置文件位于要使用 Kickstart 重新安装的客户端上,则可以将它们保存为列表,并将该列表与 Kickstart 配置文件相关联。
-
在 SUSE Multi-Linux Manager Web UI 中,导航到
,然后单击 创建文件保留列表。 -
输入适当的标签,并列出要保存的所有文件和目录的绝对路径。
-
单击 创建列表。
-
将该文件保留列表包含到 Kickstart 配置文件中。
-
导航到
,选择要编辑的配置文件,转到 子选项卡,然后选择要包含的文件保留列表。
文件保留列表总大小上限为 1 MB。 |
有关 Kickstart 的详细信息,请参见 Red Hat 文档。
4. 模板语法
安装文件的部分内容在安装过程中会被替换。变量会被替换为相应的单个值,代码段会被替换为整段文本。转义符或转义部分不会被替换。
名为 Cheetah 的模板引擎允许 Cobbler 进行这些替换。利用此机制,您在重新安装大量系统时就无需为每个系统手动创建配置文件。
您可以在 SUSE Multi-Linux 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 Multi-Linux Manager 附带了大量预定义的代码段。导航到
,以查看现有代码段列表。通过在自动安装文件中插入 $SNIPPET()
宏来使用代码段。例如,在 Kickstart 中,插入该宏:
$SNIPPET('spacewalk/redhat_register_using_salt')
或者,在 AutoYaST 中,插入该宏:
<init-scripts config:type="list"> $SNIPPET('spacewalk/minion_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(此为注释)