openSUSE:Appliances events workshop Nuremberg 2010 projects AutoYaST import
团队:Uwe Gansert, David Majda
这个项目是关于功能 #309295 (导入 AutoYaST 脚本并将其转换为等效的 Kiwi 脚本以构建)
目标是将 AutoYaST XML 文件导入到 Studio UI 中,并尽可能多地使用 Studio/Kiwi 覆盖功能,以便客户可以轻松迁移到使用 AutoYaST 进行自动安装,并使用 Studio 创建镜像。从 UI 的角度来看,变化不大。只需在 UI 中添加一个“上传 AutoYaST XML 文件”按钮,以及可能的一个或两个复选框。
当然,并非 AutoYaST 支持的所有内容都可以转换为 Studio/Kiwi,但在评估之后,我们发现有些部分是有意义的,例如
- 要安装的软件
- 使用的仓库
- 创建的用户
- 叠加文件
另一方面,有一些事情很难或不可能以合理的努力进行转换,例如
- AutoYaST 询问对话框
- 分区信息
- 引导加载程序配置
- AutoYaST 中的大多数脚本挂钩
- 许多 YaST 模块,如 samba, ntp, nfs,....
对于上述模块,我们有回退方案,可以通过其他方式支持,而不是使用 Studio。我们将会在 Studio 中实现一个复选框,该复选框将在设备首次启动时启用 AutoYaST,并使用上传的 AutoYaST XML 文件来执行第二阶段的 AutoYaST 配置。通过这种技巧,我们将 AutoYaST(以及 YaST2 的一部分)引入镜像,但我们可以支持 AutoYaST 的所有第二阶段功能,如脚本或询问对话框。不幸的是,分区和引导加载程序配置是第一阶段的内容,因此我们无法通过这种技巧覆盖它。
到目前为止,我们已经拥有并原生于 Studio/Kiwi 的内容
- 已安装的软件包
- 已安装的模式
- 禁止的软件包
- 要使用的附加仓库
- 要创建的用户
- 要创建的组
- 叠加文件
因此,如果 XML 文件中只有上述部分,我们就不需要在将 XML 文件导入到 Studio 后再安装 AutoYaST。所有内容都转换为 Studio 配置。
在研讨会结束时,我们实现了一个复选框,用于在设备的首次启动期间激活 AutoYaST,以便即使 Studio 不支持的设置也可以通过 AutoYaST 进行配置。我们与 Garrett Lesage 就如何将最终集成到 Studio 中进行了长时间的讨论,并在经过一些“情绪化”的讨论后达成了一致。
因此,我们实现了本周计划的所有内容。当然,我们所做的所有代码都只是一个原型,需要清理、测试用例和更好的错误处理。