SDB:KIWI Cookbook AutoYaST
所有 KIWI 编辑
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 处理并如下设置您的镜像
- 在启动镜像时,YaST 会自动以 AutoYaST 模式启动
- AutoYaST 描述将被解析,并且 YaST 将处理指令。 换句话说,系统配置将被执行
- 如果该过程成功完成,环境将被清理,并且 AutoYaST 不会在下次重新启动时被调用。
不幸的是,您不能在 KIWI 中使用 AutoYaST 的所有功能,因为某些部分由这两个工具完成。
您不能使用 AutoYaST 的所有安装部分(通常称为 stage1),例如分区、初始软件包安装,因为 KIWI 执行相同的操作,但可以使用 AutoYaST 的所有配置部分(通常称为 stage2)。
创建 AutoYaST XML 文件
请安装以下软件包
- autoyast2
- autoyast2-installation
- yast2-ntp(用于我们的示例)
您将在 YaST 的“杂项”部分找到自动安装工具,或者您可以通过以下命令直接在命令行中启动它:
现在将呈现一个窗口,允许您配置大多数安装选项,就像您正在安装一台新机器一样。 您可以通过菜单系统配置您系统的选项。
作为示例,我想设置 NTP 服务器
- 单击网络服务
- 单击NTP 配置
- 单击编辑
现在您将看到 NTP 服务的 YaST 配置模块
- 选择现在和启动时
- 接受您需要永久互联网连接的警告消息
- 选择自动作为运行时策略
- 单击添加
- 选择服务器并按下一步按钮
- 在右侧的下拉列表中选择公共 NTP 服务器
- 选择您的国家/地区和您选择的 NTP 服务器
- 按测试查看是否可访问
- 按确定完成选择器对话框
- 按确定完成服务器对话框
现在我们已经设置了 NTP 服务器,可以通过按确定完成 YaST NTP 配置。
最后一步是保存我们的 autoyast xml 文件,请转到顶部菜单并选择文件 - 另存为,然后输入名称 config-yast-autoyast.xml。
将写入此文件的默认位置是 /var/lib/autoinstall/repository。 稍后我们需要它与 KIWI 一起使用,因此您也可以将其直接保存到我们的 KIWI 镜像描述目录中。
整合
现在我们已经准备好所需的组件,让我们再次查看工作流程
- yast2 autoyast
- 设置配置
- 将文件保存或复制为 config-yast-autoyast.xml 到 kiwi 镜像描述目录。
- 确保 autoyast 是镜像的一部分
- 构建镜像
逐步操作
创建构建目录结构
将 JeOS 模板克隆到我们的构建目录
创建 AutoYaST xml 文件
将其保存为 /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>
您也可以使用--add-package 动态执行此操作,例如:
让我们看看会发生什么(如果您有 qemu-kvm,它会更快)
您会看到 YaST 在启动期间启动并配置 NTP 服务。 要检查设置,您可以查看 NTP 配置文件,以查看是否包含通过 autoyast GUI 界面完成的设置。
根据我的设置,它看起来像
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 会自动配置。