自从我们 上次的冲刺报告 以来,已经过去了将近两个月,但除了圣诞节假期外,团队一直非常忙碌地致力于即将发布的 (open)SUSE 版本的一些功能和错误修复。

但描述我们所做的一切内容会非常冗长 :),所以让我们尝试突出其中的一些。

  • YaST 接受了安全审计,虽然没有发现实际的安全问题,但我们被要求引入一些改进。
  • 现在可以通过 PXE 启动在没有任何本地仓库的情况下运行安装程序。非常具体但很酷!
  • 我们正在改进 YaST2 配置管理模块中 SUSE Manager Salt Formulas 的支持。不要被名称所迷惑,它并不局限于 SUSE Manager。
  • YaST 图标现在包含在使用的软件包中。我们希望这能让图标设计师更容易。
  • 防火墙模块现在支持创建 firewalld 自定义区域。
  • 读取巨大的 /etc/hosts 文件时的性能得到了极大的提升。
  • CD/DVD 资源在安装后始终被禁用。

YaST 安全加固

我们的 SUSE 安全团队对 YaST 进行了安全审计。好消息是,没有真正需要担心的安全问题。尽管如此,我们还是进行了一些加固,以使代码更加安全。

这可能导致 Factory / Tumbleweed 中出现一些问题,因为代码中的许多地方都受到了影响。对于可能造成的任何不便,我们深表歉意;但我们相信您更喜欢 YaST 更安全。

大部分更改集中在调用外部命令上,而 YaST 会执行很多此类操作。由于 YaST 在大多数情况下以 root 权限运行,我们希望确保这是尽可能安全的。如果您发现任何问题,请提交错误报告。

我们做了什么以及如何做的总结如下:YaST 安全审计修复:经验教训和提醒

通过 PXE 启动安装,无需任何安装仓库

在数据中心和其他大型企业环境中,管理员很少通过可移动介质(如 DVD)安装新软件。相反,管理员依赖 PXE(预启动执行环境) 启动到镜像服务器。

在这些环境中安装 Linux Enterprise 通常需要本地网络中的两个辅助服务器

  • DHCP/TFTP 服务器提供 PXE 执行安装程序使用的最小系统。
  • 一个服务器通过 FTP、HTTP 或任何类似的协议在本地网络中提供 SLE DVD 仓库。

通常,第二个服务器更多的是安装程序施加的要求,而不是真正有用的东西。在大多数情况下,要安装的系统将注册到 SUSE 客户中心(或其任何代理技术,如 SMT 或 RMT),并将从那里获取所有软件。因此,我们决定为管理员节省下载 SLE ISO 镜像并设置服务器以提供该 ISO 内容的额外步骤,在不需要这些步骤的情况下。

但是,仓库不仅用于获取最终系统中安装的软件。如本博客中经常解释的那样,我们为 SUSE 和 openSUSE 的所有产品和版本(无论安装过程多么不同)提供一个安装程序。该通用安装程序使用安装仓库中的信息来获取其自身的配置。这包括可用的产品(及其相应的系统角色)、要呈现给用户的步骤和选项、所需的磁盘分区设置以及许多其他方面。如果没有这些信息,安装程序基本上就是没有乐谱的音乐家。

从 SLE-15-SP1 开始,可以使用启动参数 NOREPO=1 来告诉安装程序不要期望(更重要的是,不要要求)DVD 或本地网络中的任何本地仓库。在这种情况下,安装程序将能够进行到注册屏幕,并从注册服务器获取后续安装步骤的信息。在 openSUSE 的情况下(注册毫无意义),它将能够到达允许添加更多仓库的屏幕。

改进用户安装体验的又一步。数据中心管理员,请尽情享受!🙂

改进 SUSE Manager Salt Formulas 支持

早在 2017 年,YaST 配置管理 模块就获得了对作为 Hack Week 项目 的 SUSE Manager Salt Formulas 的支持。如果您不了解此功能,您可能对 Forms are the Formula for Success 演示文稿或 Hack Week 项目 后续帖子 感兴趣。

从那时起,表单规范已经发生了很大的变化,YaST 支持基本上已经过时。因此,在 2018 年 11 月,我们开始工作以将缺失的部分带到 YaST 模块中。基本上,我们重写了表单支持,虽然仍然存在一些粗糙的边缘,但我们非常接近发布一个具有对此强大功能最新支持的新版本。

Screenshot of how the dhcpd formula looks like

管理 YaST 防火墙中的自定义区域定义

新的 YaST UI 用于配置 firewalld冲刺 #63 的报告 中宣布(四个月前……时间过得真快!),从那时起,我们一直在改进它。

firewalld 附带一些预定义的 区域。虽然它涵盖了大多数用户的需求,但它还允许用户定义自定义区域。在上次冲刺期间,我们添加了对新 UI 和 AutoYaST 的支持来管理 自定义区域

YaST2 Firewall custom zones definition dialog

在开发过程中,检测到一些在 AutoYaST 配置 中存在的问题也得到了解决。

更新 YaST 品牌和图标处理

过去,YaST 图标包含在 yast2-branding-openSUSE(openSUSE)和 yast2-theme-SLE(SUSE Linux Enterprise)软件包中。标准 YaST 图标包含在这些软件包中,标准 YaST 模块不包含任何图标。

然而,对于图标设计师的缺点是,不清楚哪些图标真正被使用。
如果您想更新图标主题,您可能会做很多无用的工作,因为一些图标不再使用。

现在,图标包含在各自的 YaST 软件包中,如果软件包被删除,图标也会被删除。

软件包管理器 UI 包含编译的备用图标。这意味着如果品牌软件包损坏或图标文件意外从磁盘中删除,它仍然可以用于紧急恢复。

品牌仍然有效,供应商仍然可以提供将覆盖包含图标的特定图标。因此,openSUSE 和 SLE 产品仍然可以具有不同的外观。

YaST2 Control Center new branding Screenshot

衷心感谢来自社区的 Stasiek Michalski 和 Noah Davis,他们对 YaST 代码进行了更改,设计了新图标并进行了大量清理!

提高加载巨大 /etc/hosts 文件的性能

在处理广告拦截器时,您可能需要维护一个巨大的 /etc/hosts 文件。包含数千行的此类文件需要花费难以置信的时间才能加载到 YaST2 中。在某些配置中,甚至可能发生加载包含大约 10.000 行的 /etc/hosts 文件导致系统完全冻结。在 YaST2 Host 模块进行了一些重构之后,性能得到了显着提高,并且在之前崩溃的相同配置上加载包含 10.000 行的文件现在大约需要 30 秒。

安装后禁用 CD/DVD 仓库

如果您从 CD/DVD 资源安装系统,通常会发生这种情况,该仓库对于整个系统的生命周期来说都不可用。在某些情况下,这仅仅是不舒服,因为存在一些警告,但在其他情况下,它会导致严重的并发症,例如在尝试迁移时。

过去,在某些情况下,这些仓库已经被禁用。但是,从现在开始,它们将始终被禁用,以避免不必要的副作用。

结束语

这是 2019 年的第一份报告。如果您想知道,我们的计划是坚持在每次冲刺后发布报告的计划,因此预计在两周后发布下一次报告。

但是,我们最近不得不从所谓的 GitHub 服务(现已弃用)迁移到 GitHub Web 钩子,因此您可能会很快收到一篇关于此的博客文章。

敬请期待!