Documentation survey

自动安装配置文件

在 SUSE Multi-Linux Manager 中,您可以使用两种不同的配置文件,具体取决于您要安装的客户端的操作系统:

  • 对于 SUSE Linux Enterprise 或 openSUSE 客户端,请使用 AutoYaST。

  • 对于 Red Hat Enterprise Linux 客户端,请使用 Kickstart。

自动安装配置文件决定了如何安装操作系统。例如,您可以指定更多要传递给安装程序的内核参数。

The most important part of the profile is the autoinstallation file. When you perform an installation manually, you must provide information to the installer, such as partitioning and networking information and user details. The autoinstallation file is a method of providing this information in a scripted form. This type of file is sometimes also referred to as an answers file.

如果您要安装具有不同操作系统的客户端,可以使用 AutoYaST 和 Kickstart 配置文件。

配置文件中包含的自动安装文件可以包含变量和代码段。有关变量和代码段的信息,请参见模板语法

1. 声明配置文件

准备好自动安装文件和发行套件后,您可以创建配置文件来管理 SUSE Multi-Linux Manager 服务器上的自动安装。配置文件会决定如何安装您选择的此发行套件。创建配置文件的其中一个方式是上载 AutoYaST 或 Kickstart 文件。或者,您也可以使用 Web UI 向导(仅针对 Kickstart)。

过程:通过上载创建自动安装配置文件
  1. 在 SUSE Multi-Linux Manager Web UI 中,导航到系统  自动安装  配置文件

  2. 单击 上载 Kickstart/AutoYaST 文件

  3. 标签字段中,键入配置文件的名称。不要使用空格。

  4. 自动安装树字段中,选择要用于此配置文件的可自动安装的发行套件。

  5. 虚拟化类型字段中,选择要用于此配置文件的虚拟化类型,或选择(如果您不想使用此配置文件创建新的虚拟机)。

  6. 将自动安装文件的内容复制到文件内容字段,或使用要上载的文件字段直接上载文件。

    有关此处要包含的细节的详细信息,请参见 AutoYaST 配置文件Kickstart 配置文件

  7. 单击 创建 以创建配置文件。

过程:通过向导创建 Kickstart 配置文件
  1. 在 SUSE Multi-Linux Manager Web UI 中,导航到系统  自动安装  配置文件

  2. 单击 创建 Kickstart 配置文件

  3. 标签字段中,键入配置文件的名称。不要使用空格。

  4. 基础通道字段中,选择要用于此配置文件的基础通道。系统会根据可用的发行套件填充此字段。如果您需要的基础通道不可用,请检查您是否正确创建了发行套件。

  5. 虚拟化类型字段中,选择要用于此配置文件的虚拟化类型,或选择(表示不进行虚拟化)。

  6. 单击 下一步

  7. 发行套件文件位置中,键入 SUSE Multi-Linux Manager 服务器上安装的安装媒体的路径。

  8. 单击 下一步

  9. 提供客户端上 root 用户的口令。

  10. 单击 完成

  11. 查看新配置文件的细节,并视需要进行自定义。

创建自动安装配置文件时,您可以选中始终为此基础通道使用最新的树。此设置可让 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 脚本中使用变量的详细信息,请参见变量

Provided AutoYaST templates do not set any user password. Consider setting up root and other user accounts and passwords or other means of authentication. For more information about user accounts in the AutoYaST profiles, see https://doc.opensuse.org/projects/autoyast/#Configuration-Security-users-and-groups.

在 AutoYaST 安装文件中,用于通过 SUSE Multi-Linux Manager 安装的最重要的部分如下:

有关 AutoYaST 的详细信息,请参见 https://doc.opensuse.org/projects/autoyast/

近期一个基于 Salt 的方案 Yomi 可替代 AutoYaST。有关 Yomi 的信息,请参见 使用 Yomi 安装

3. Kickstart 配置文件

Kickstart 配置文件提供了大量配置选项。要创建这些配置文件,您可以上载它们,也可以使用专用向导。

Kickstart 配置文件允许您使用文件保留列表。如果您有许多自定义配置文件位于要使用 Kickstart 重新安装的客户端上,则可以将它们保存为列表,并将该列表与 Kickstart 配置文件相关联。

过程:创建文件保留列表
  1. 在 SUSE Multi-Linux Manager Web UI 中,导航到系统  自动安装  文件保留,然后单击 创建文件保留列表

  2. 输入适当的标签,并列出要保存的所有文件和目录的绝对路径。

  3. 单击 创建列表

  4. 将该文件保留列表包含到 Kickstart 配置文件中。

  5. 导航到系统  自动安装  配置文件,选择要编辑的配置文件,转到系统细节  文件保留子选项卡,然后选择要包含的文件保留列表。

文件保留列表总大小上限为 1 MB。/dev/hda1/dev/sda1 等特殊设备无法保留。只能使用文件名和目录名,不能使用正则表达式通配符。

有关 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(此为注释)