SDB:KIWI Cookbook AutoYaST

跳转到:导航搜索


如何使用 YaST 和 AutoYaST 的图形界面作为配置工具来创建 KIWI 镜像。
Icon-checked.png
此过程至少在 Kiwi 版本 3.25 ( kiwi --version ) 上进行了测试 - 其他(通常是较旧的)版本不支持所有显示的功能



KIWI 和 AutoYaST - 一个绝佳的组合


本示例将指导您完成创建 AutoYaST 文件并将其与 KIWI 配合使用,以便在启动时自动配置您的系统。

AutoYaST 配方

准备时间

  • 10 分钟

烹饪时间

  • 15-25 分钟,具体取决于带宽(参见上面的讨论)和主机的硬件

配料

  • 一个正在运行的 openSUSE 11.1 系统(或更高版本)
  • 一个 openSUSE 11.1 仓库(或更高版本)
  • 已安装最新版本的 KIWI 工具集(至少版本 3.25)
  • 已安装 kiwi-doc 包
  • 大约 2 GB 的可用磁盘空间

AutoYaST

AutoYaST 安装方法允许通过使用 XML 控制文件几乎完全自定义安装。 您可以使用自动安装工具轻松创建和修改此硬件无关的文件。 最重要的是,AutoYaST 文件是可移植的;可以创建一次配置,并经常用于各种硬件配置,几乎无需更改。

Kiwi 镜像描述

为了能够使用 KIWI 创建镜像,必须创建一个所谓的镜像描述。 镜像描述由一个目录表示,该目录至少包含一个名为 config.xml 的文件,该文件是主要的 kiwi 控制文件。 此目录中还有其他文件,其中之一是 config-yast-autoyast.xml 文件。

这是一个由 AutoYaST 使用的配置文件,可以被 KIWI 处理并如下设置您的镜像

  1. 在启动镜像时,YaST 会自动以 AutoYaST 模式启动
  2. AutoYaST 描述将被解析,并且 YaST 将处理指令。 换句话说,系统配置将被执行
  3. 如果该过程成功完成,环境将被清理,并且 AutoYaST 不会在下次重新启动时被调用。

不幸的是,您不能在 KIWI 中使用 AutoYaST 的所有功能,因为某些部分由这两个工具完成。

您不能使用 AutoYaST 的所有安装部分(通常称为 stage1),例如分区、初始软件包安装,因为 KIWI 执行相同的操作,但可以使用 AutoYaST 的所有配置部分(通常称为 stage2)。

创建 AutoYaST XML 文件

请安装以下软件包

  • autoyast2
  • autoyast2-installation
  • yast2-ntp(用于我们的示例)
# zypper in autoyast2 autoyast2-installation

您将在 YaST 的“杂项”部分找到自动安装工具,或者您可以通过以下命令直接在命令行中启动它:

# yast2 autoyast

现在将呈现一个窗口,允许您配置大多数安装选项,就像您正在安装一台新机器一样。 您可以通过菜单系统配置您系统的选项。

作为示例,我想设置 NTP 服务器

  1. 单击网络服务
  2. 单击NTP 配置
  3. 单击编辑

现在您将看到 NTP 服务的 YaST 配置模块

  1. 选择现在和启动时
  2. 接受您需要永久互联网连接的警告消息
  3. 选择自动作为运行时策略
  4. 单击添加
  5. 选择服务器并按下一步按钮
  6. 在右侧的下拉列表中选择公共 NTP 服务器
  7. 选择您的国家/地区和您选择的 NTP 服务器
  8. 测试查看是否可访问
  9. 确定完成选择器对话框
  10. 确定完成服务器对话框

现在我们已经设置了 NTP 服务器,可以通过按确定完成 YaST NTP 配置。

最后一步是保存我们的 autoyast xml 文件,请转到顶部菜单并选择文件 - 另存为,然后输入名称 config-yast-autoyast.xml

将写入此文件的默认位置是 /var/lib/autoinstall/repository。 稍后我们需要它与 KIWI 一起使用,因此您也可以将其直接保存到我们的 KIWI 镜像描述目录中。

AutoYaST UI 可以做更多的事情。 您可以通过按单个按钮克隆单个模块,或者您可以将一个模块的配置应用于当前正在运行的系统。 最后,您可以检查 XML 文件是否存在语法错误。

整合

现在我们已经准备好所需的组件,让我们再次查看工作流程

  1. yast2 autoyast
  2. 设置配置
  3. 将文件保存或复制为 config-yast-autoyast.xml 到 kiwi 镜像描述目录。
  4. 确保 autoyast 是镜像的一部分
  5. 构建镜像

逐步操作

创建构建目录结构

# mkdir -p /tmp/myimage/img

将 JeOS 模板克隆到我们的构建目录

# kiwi --clone suse-11.1-JeOS -d /tmp/myimage

创建 AutoYaST xml 文件

# yast2 autoinstall

将其保存为 /tmp/myimage/config-yast-autoyast.xml


将软件包 autoyast2、autoyast2-install 添加到您的 KIWI config.xml 或通过参数 --add-package 动态添加

因为我们在此示例中使用 JeOS 模板,所以我们必须将更多软件包添加到我们的 KIWI control.xml 文件中,以使示例正常工作。

滚动到 config.xml 文件中的软件包列表,以查看为镜像选择的当前软件包列表,并添加以下软件包

<packages type="image">
 ...
 <package name="autoyast2"/>
 <package name="autoyast2-installation"/>
 <package name="yast2-ncurses"/>
 <package name="yast2-sysconfig"/>
 <package name="yast2-ntp"/>
 <package name="ntp"/>
 <package name="yast2-network"/>
 ...
</packages>
# kiwi --build /tmp/myimage --destdir /tmp/myimage/img

您也可以使用--add-package 动态执行此操作,例如:

# kiwi --build /tmp/myimage --destdir /tmp/myimage/img --add-package autoyast2 --add-package autoyast2-installation --add-package yast2-ncurses --add-package yast2-sysconfig --add-package yast2-ntp --add-package ntp --add-package yast2-network

让我们看看会发生什么(如果您有 qemu-kvm,它会更快)

qemu /tmp/myiso-result/suse-11.1-live-iso.i686-2.5.1.iso -m 512

您会看到 YaST 在启动期间启动并配置 NTP 服务。 要检查设置,您可以查看 NTP 配置文件,以查看是否包含通过 autoyast GUI 界面完成的设置。

# cat /etc/ntp.conf

根据我的设置,它看起来像

server de.pool.ntp.org iburst
# key (7) for accessing server variables
# controlkey 15                 # key (6) for accessing server variables


如果您想使用图形界面,则必须注意 openSUSE 的版本。

在 openSUSE 11.3 之前设置 X 配置,您必须将sax2 -a 作为 /etc/init.d/boot.local 的一部分添加。 这也适用于 SUSE Linux Enterprise Server,直到版本 11 SP1

有关详细信息,您可以查看配方 SDB:KIWI Cookbook GNOME System,我们也在那里使用了它

从 openSUSE 11.3 开始,X 会自动配置。