正如您可能注意到的,在最近的冲刺中,我们越来越专注于使 SUSE CASP 成为可能。这在今年的最后一次冲刺中更加明显。对于最近没有关注此博客的人来说,值得记住的是,SUSE CASP 将是一个基于 Kubernetes 的容器即服务平台。
但我们的日常工作超越了 CASP,所以让我们来看看所有的亮点。
DHCLIENT_SET_HOSTNAME 管理方面的更多改进
在 之前的报告 中,我们介绍了 yast2-network 中引入的更改,以使配置参数 DHCLIENT_SET_HOSTNAME 能够基于每个接口进行配置。
在敏捷和迭代方式下工作的好处之一,每三周展示和评估结果,是它使我们能够发现工作中需要改进的地方。在这种情况下,我们注意到 Linuxrc 和 yast2-network 的期望存在差异,并且代码文档和帮助文本方面也有改进空间。
因此,我们利用这次冲刺来完善之前的工作并解决这些问题。
确保安装所需的软件包
另一个迭代开发的例子。我们已经在 第 26 次开发冲刺的报告 中介绍了一种新机制,用于检测用户在安装过程中取消选择了一些 YaST 之前预先选择的软件包,以便安装引导加载程序。由于新功能证明有效,我们决定将其扩展到系统超出引导加载程序的部分。
软件建议现在包含一个错误消息,其中包含一个缺失的软件包或模式列表,以防用户取消选择所需的项目。
单击 安装 按钮后,安装将被阻止,用户必须通过重新选择软件包或调整相应的 YaST 配置(例如,不安装任何引导加载程序并禁用防火墙)来解决问题。
重新思考专家分区工具
我们是否可以再次强调使用 Scrum 来以迭代方式组织我们的工作?
我们的常客应该已经知道,我们将工作结构化为产生有价值结果的最小单元,在 Scrum 术语中称为 PBIs。这种有价值的结果并不总是软件、已实现的功能或已修复的错误。有时,一份文档可以为 YaST 增加价值,特别是如果它可以作为与团队外部人员合作的基础。
我们的读者也知道,我们正在努力重写 YaST 的整个存储层。这也意味着重写人类已知的定义分区、卷、RAID 等的最强大的工具——YaST 专家分区工具。
如果我们能够利用这个机会使其既更强大又更易于使用,那就太好了。您可以认为第一部分是理所当然的,但我们对我们的 UI 设计技能不太确定。这就是为什么我们想要一个讨论可能的更改和替代方案与 UX(用户体验)专家的基础。我们决定花一些时间创建一个收集最新技术和未来想法的文档,并将其发送给 SUSE 的 UX 专家以及对该主题感兴趣的任何人。
您可以在 这里找到这份精美的文档。如果您想一窥 YaST 开发者的想法,请查看该文档。这就是我们在开始重写某些东西时会讨论的内容……特别是需要服务数百种不同用例的东西。
当然,我们也想知道您的想法或意见。我们通常在公共 #yast IRC 频道 和 yast-devel 邮件列表中讨论这些内容。但如果您更喜欢,您可以简单地在托管该文档的存储库中 打开一个 issue。无论对您来说哪个有效。
重新思考 yast2-network
但这不是这次冲刺中完成的唯一文档 PBI。受到存储层重新实现的早期成果的启发,我们决定 yast2-network 也值得重生。
正如我们过去在 yast2-storage 和 libstorage 中所做的那样,第一步是尽可能多地收集有关当前模块可以做什么以及它在各种情况下(特别是棘手或复杂的情况下)如何表现的信息。结果是三份文档,一份关于安装期间的行为 (installation.md),第二份关于 AutoYaST (autoinstallation.md),另一份收集了常规功能 (features.md)。
CASP:合并根密码和键盘布局对话框
CASP 是针对一个相当具体的用例的产品,简单性是其主要优先级。安装过程已简化为一组最小的对话框,以仅配置最基本的内容。在移除的众多内容中,没有配置系统语言的步骤。当输入根密码(安装过程中将创建的唯一用户)时,这可能是一个问题,因为语言设置屏幕通常也用于选择键盘布局。
实现的解决方案如图所示。如您所见,键盘布局和根密码选择合并到一个步骤中。作为奖励,我们使这两个小部件更具可重用性,从而有可能在任何地方放置根密码小部件或键盘布局选择。
存储重新实现:在安装建议中处理 GPT 磁盘
在几次冲刺中报告了小的进展之后,在第 27 次冲刺中,我们 很高兴地宣布 我们的新存储堆栈测试 ISO 在某些情况下可以完全安装。正如我们报告的那样,它适用于 UEFI 或传统系统,前提是磁盘上存在预先存在的 MBR 分区表。
现在我们可以说它也适用于 GPT 分区表,甚至适用于同时使用两种技术的系统。
让 GPT 场景工作比听起来更难,因为有几个因素,例如 parted 处理 GPT 中分区类型的奇怪方式,或者空间在这样的分区表中分布方式的一些特殊性。
但现在我们的测试 ISO 可以安装一个功能齐全的系统,在 MBR/GPT 分区表和 UEFI/Legacy 启动的四种组合中,如图所示。
存储重新实现获得自己的 openQA 实例
但证明某些东西正在工作,甚至证明在未来的修改之后它仍然在工作,还有更好的方法。在 (open)SUSE 中,我们拥有其中一种最好的工具——openQA。
我们一直认为在 openQA 中测试新堆栈是其开发中的第一个重要里程碑(我们终于实现了!),但我们知道 openQA.opensuse.org 已经很忙于测试大量的产品、架构和场景组合……甚至测试 openQA 本身的发布版本。幸运的是,openQA 是免费软件,可以安装在任何地方,因此我们在内部 SUSE 网络中创建了自己的 openQA 实例来测试 YaST 内容,特别是新的存储层。
到目前为止,该实例托管在 SUSE 内部网络中,这足以让我们获得对我们引入的更改的持续反馈。除了安装新实例并配置它以持续获取和检查 最新的测试 ISO 之外,我们还必须对 ISO 本身进行一些更改,目的是使我们的测试尽可能与 openQA.opensuse.org 执行的当前 Tumbleweed 版本中的测试保持一致。
例如,我们确保 ISO 已正确签名,以避免始终传递 insecure=1 启动参数。我们还包含了一些缺失的软件包,以确保 ISO 包含在所谓的 MinimalX 测试期间检查的所有软件,并确保它与常规 Tumbleweed 具有相同的外观和感觉,因为许多 openQA 检查都是基于截图的。
从现在开始,我们可以用相应的集成测试来支持每个新功能,这对于确保旨在处理存储硬件的软件的质量至关重要。
使 Snapper 可以在没有 DBus 的情况下工作
如您所知,一些 YaST 团队成员也是 Snapper 的主要开发人员和维护者,Snapper 是 GNU/Linux 系统的终极文件系统快照工具。
通常,snapper 命令行工具使用 DBus 连接到 snapperd,后者执行大部分实际工作。这允许非 root 用户使用 snapper。
但是,在某些情况下,使用 DBus 是不可能的,并且无法在这些情况下工作限制了 Snapper 的实用性。现在,有了最新版本,所有 snapper 命令都支持 –no-dbus 选项。这种演变值得一篇博文……当然,我们也有它。要了解所有详细信息,请查看 Snapper 博客上的这篇文章。
CASP(以及超越):改进的角色
您还记得在 开发冲刺 16 中引入并在后续冲刺中改进的系统角色功能吗?以防您不记得,让我们提醒您,系统角色允许仅通过选择提供的角色来定义许多安装设置。当然,只有使用该功能的产品的才能做到这一点,例如 SLES。
对于 CASP,我们将有 3 个不同的角色,如图所示。
这三个角色之间的主要区别是所选模式的安装。但除此之外,Worker 角色将提供一个额外的步骤,允许用户指定所谓的管理仪表板的地址。
这个相对较小的细节意味着安装程序中开发了一个全新的功能——允许给定的角色定义它自己的特定配置,包括与用户交互的对话框。正如任何其他安装对话框一样,您可以前后移动而不会丢失输入的信息。如果用户返回并选择不同的角色,则不会再次运行此额外的对话框。
这个新功能当然不特定于 CASP,最终也可以用于其他产品和角色。例如,openSUSE 可以决定引入一个名为“NTP 服务器”的角色,在用户选择该角色后立即运行 YaST NTP 服务器配置。
其他 CASP 相关功能
如前所述,我们一直非常专注于引入 CASP 所需的功能。如果还不清楚,值得一提的是,CASP 不会发布其自己定制的 YaST 版本。在安装程序中引入的所有功能实际上都是可配置的,并且也适用于所有其他产品。只有一个 YaST 代码库来统治它们。
让我们简要描述一些引入的 CASP 特定的(至少目前是)功能。
CASP 始终将 Btrfs 用作根分区的文件系统。安装结束时,根 btrfs 子卷将变为只读。所有其他子卷将保持为读写,如图所示,在安装过程结束后的重新启动后拍摄的屏幕截图。
从任何现有产品升级到 CASP 没有意义。因此,CASP 媒体在启动时不应显示“更新”选项,即使对于高级用户来说,传递 UPDATE 启动参数仍然是可能的。由于我们需要修改 installation-images 包,我们借此机会使“更新”选项和其他设置基于每个产品进行配置,并统一了 SLES 和 openSUSE 包,现在它们共享源代码存储库中的单个分支。
CASP 针对全球范围内的庞大部署。为了使地理上分布的节点同步成为可能,在每个 CASP 安装中都强制使用 UTC 时区。因此,我们实现了支持产品在安装程序中强制使用给定时区的支持。请注意,这与默认时区不同。
最后但并非最不重要的一点是,已经提到 CASP 安装工作流程将只有很少的步骤。这也影响了显示安装设置摘要的屏幕。与常规 SLES 相比,一些选项必须消失,因为它们不可配置,并且必须添加一些其他部分,因为它们不再作为单独的先前步骤呈现。到目前为止,这是当前 CASP 原型中安装设置屏幕的外观。
……以及关于博客的一个惊喜
我们还为博客准备了一份圣诞礼物。技术方面已经解决,但我们正在敲定行政细节。因此,您必须等到下一次冲刺报告才能看到它的全部荣耀。但正如西班牙谚语所说,“好东西值得等待”。
明年再见
这就是我们 12 月冲刺的报告,我们不想用每个小的错误修复来烦扰您。说到值得等待的事情,我们的下一份报告很可能在 2017 年 2 月初发布。
这是因为我们将把我们的 Scrum 流程暂停在圣诞节期间。我们将在新年第二周重新启动它,在三位智者拜访之后。在几个国家,传统上三位国王会给表现良好的孩子们送礼物,所以让我们期待他们给我们带来一些团队新成员!








