YaST 团队的 2022 年第五篇常规开发报告即将发布。我们正在完善一些细节,同时等待最近的 openSUSE Conference 2022 的视频上线。但请不要担心,我们不会让大家感到无聊。恰恰相反,我们有一些令人兴奋的消息要与大家分享!
享受 YaST,无需安装
我们都知道 YaST 在管理您的 (open)SUSE 系统方面有多么出色。从管理软件仓库和已安装的软件,到调整 systemd 服务和套接字。从创建 LVM 逻辑卷到配置 Kdump(或 fadump)。从检查 systemd 日志到微调引导加载程序。从配置网络接口到调整 CPU 漏洞的缓解措施。从设置防火墙配置到管理您订阅的各种 SUSE 产品……以及更多!
但所有这些都伴随着一个相当明显的价格。您必须在要管理的系统中安装 YaST 及其所有依赖项。这些依赖项包括 Ruby 运行时,以及 ncurses 或 Qt(取决于您想要基于文本的界面还是完全图形化的界面),以及根据您想要实现的目标的其他一些软件包或库。例如,您需要 libzypp 才能安装软件或管理仓库。
如果您不想为此付出代价怎么办?嗯,我们为您准备了一份特别优惠!现在,您可以使用 YaST 来管理您的系统,而无需安装 YaST 或其任何依赖项。非常适合喜欢极简系统的人,例如 SUSE 和 openSUSE 的 MicroOS 变体。您所需要的只是像 Docker 或 Podman 这样的容器引擎……如果您使用的是 MicroOS,您已经在使用了,不是吗?
它是如何工作的?
另一个好消息是,这其中没有涉及任何黑魔法,只是一点 shell 脚本。您可以在 yast-in-container 仓库 中查看技术细节。该工具仅依赖于 Podman(或者 Docker),并提供一系列与相应的 yast 和 yast2 命令等效的命令。主要区别在于,这些新命令会获取 YaST 并将其在容器中运行,该容器将透明地用于管理主机系统。例如,以下命令将打开相应的 YaST 模块来管理仓库。第一个以文本模式,第二个命令使用完整的 Qt 图形界面
$ yast_container repositories
$ yast2_container repositories
正如您所期望的那样,如果命令在未指定任何参数的情况下执行,它们将打开 YaST 控制中心的相应版本,仅显示当前预计在容器中工作的模块(更多信息见下文)。
让我们想象一个非常极端的例子
- 您从一个没有 YaST、没有 Ruby、没有 zypper 或 libzypp 的极简系统开始……甚至没有可用的
rpm命令!您所拥有的一切是 Podman 和互联网访问。 - 您可以执行
yast_container,它将下载(如果需要)并启动您的容器化 YaST 版本,以便您可以享受所有通常的 YaST 功能来管理仓库及其 GPG 密钥,安装和卸载软件等。 - 完成操作后,您只需退出容器化的 YaST,即可返回您的极简系统,而不会留下 YaST 或 zypper 的任何痕迹,但所有软件包和仓库都已根据您的意愿配置。
通过 SSH、X11… 或 Web 浏览器进行远程访问!
您当然可以使用这个方便的 YaST-in-a-box 来管理您的本地系统。如果您将 yast-in-container 包安装在具有图形界面的系统中,您甚至会获得一个漂亮的图标来启动它。
![]()
但是远程管理呢?当然,您可以使用 YaST 的常用方式来执行此操作。也就是说,通过优秀的基于文本的界面通过 SSH,甚至通过 X11 或 VNC 打开远程图形会话。但是,这些解决方案要求您在用于远程访问的设备上安装一些特定的软件。但是,如果您不需要在要管理的系统上安装 YaST,为什么要在另一端安装任何东西呢?好消息是您实际上不需要 - 您只需要一个 Web 浏览器!
除了已经提到的在文本和图形模式下运行容器化 YaST 的命令之外,该软件包还包含一个名为 yast2_web_container 的第三个命令,它将在 Web 会话中运行 YaST,您稍后可以通过简单地将浏览器指向要管理的系统的 4984 端口来访问该会话。
好的,它不是一个现代化的移动优先 Web 界面,而是 YaST 的图形版本在浏览器窗口中运行。但这对于许多情况来说应该足够了。身份验证和证书可以轻松配置以保护 YaST 实例。
我能做什么?
到目前为止,您可能想知道 - 这个容器化的 YaST 版本能做到与常规安装的 YaST 相同的一切吗?答案是 - 还没有。如前所述,容器中的 YaST 控制中心仅显示受支持的模块。或者,您可以运行 yast2_container -l 来列出受支持的模块。
好消息是,我们计划调整更多的模块,以便它们能够在这样的环境中工作。更好的消息是,我们预计大多数模块的调整都将非常容易。基本上,在常规安装期间使用的所有 YaST 组件都应该很容易调整。这包括分区程序、引导加载程序配置、kdump、CPU 缓解措施等等。
另一方面,我们不计划调整每个 YaST 模块。例如,管理 Samba、iSCSI 目标或 DHCP 服务器之类的服务的模块可能不会被调整,除非我们检测到对其中任何一个有真正的需求。
未来计划
如前所述,我们已经在调整更多的 YaST 组件,以便它们能够以容器化的方式运行。但这并不是我们推进这个不错的项目的唯一计划。我们还希望减少下载和使用的镜像大小,改进内部 VNC 的使用方式以提供 Web 访问,依赖 SLE BCI 来构建整个系统……还有很多乐趣可以享受!
此外,我们提到了 MicroOS 变体作为使用容器化 YaST 的可能候选者。但是,这种发行版的事务性质可能会挑战某些 YaST 模块的工作方式,无论它们是在容器中运行还是直接在系统中运行。例如,安装软件包的方式完全不同。因此,除了对我们的容器化 YaST 进行上述改进之外,我们还在考虑调整 YaST 的某些部分,以便更好地处理事务系统的管理。
当然,我们将通过我们通常的渠道向您通报所有步骤。所以请继续关注!
