openSUSE:ALP/Workgroups/SysMngmnt/Cockpit
目标
ALP 系统管理工作组进行了一些研究,并创建了一份包含研究结论以及 2022 年 9 月 ALP 原型首次计划和承诺的文件:conclusion.md
作为结果的一部分,该工作组正在努力使 Cockpit 成为 1:1 管理 ALP 系统的有价值的默认系统。
状态
更新时间:2022-10-20
- 完成
- 正在进行
- 更好地检查 firewalld 权限
- 计划中
- 帮助开发一种官方机制来设置 Cockpit 主题(无需我们当前的应用补丁)。请参阅 https://github.com/cockpit-project/cockpit/issues/16359。
- 修复 Cockpit 与事务系统配合使用时效果不佳的几个问题
- 使 cockpit-machines 与容器化的 libvirt 配合使用
- 从头开始重新思考我们的 Cockpit 打包
- 有关更多(分散)详细信息,请参阅博客文章:2022-07-19、2022-08-02、2022-08-23、2022-09-06、2022-09-22、2022-10-20
Cockpit 在 ALP 中的应用
本节介绍如何在 ALP 上使用 Cockpit 以及仍然需要解决的挑战,以使在 ALP 上安装和使用 Cockpit 成为一个完全直接的体验。
基于 ALP-0.1-Build13.5 的经验。
该模式 alp_cockpit 默认安装在镜像中。它包含管理系统所需的的基本组件,但不包括提供用户界面的 Cockpit 的 Web 服务器。请注意,您不需要在每台机器上安装 Cockpit 的 Web 服务器,因为只要所有机器都安装了基本的 alp_cockpit 模式,就可以使用一个 Web 界面实例来连接到多个主机。无论如何,如果您正在管理多台机器,请考虑使用专为多机管理设计的工具,如 Salt、Ansible 或 Uyuni(SUSE Manager)。
部署 Cockpit 的 Web 服务器
有两种方法可以在 ALP 机器中部署 Web 服务器
- 作为来自 ALP 工作负载存储库的容器
- 通过软件包直接安装到 ALP 系统中
在大多数情况下,第一种方法更方便,因为它不涉及修改基础系统,这对于像 ALP 这样的事务系统可能会产生一些后果,例如需要重新启动系统。另一方面,它使用 SSH 连接到受管系统,这也具有一些影响(如下所示)。
使用您喜欢的安装方法安装 Web 服务器后,只需使用 Web 浏览器连接到 https://ip-or-name-of-your-alp:9090/,接受自签名证书并使用 ALP 系统的任何用户的凭据登录即可。
将 Web 服务器作为容器化工作负载运行
当使用容器化的 Web 服务器时,通过 Web 界面进行的身份验证将在底层使用 SSH 执行。默认情况下,root 用户无法打开 SSH 会话,因此受管系统中必须有一个可以使用密码登录的非 root 用户。作为一种不太安全的替代方案,可以配置 SSH 服务器以允许 root 用户使用密码登录。
要自动在每次启动时安装并运行容器
podman container runlabel INSTALL registry.opensuse.org/suse/alp/workloads/tumbleweed_containerfiles/suse/alp/workloads/cockpit-ws:latest systemctl enable --now cockpit.service
也可以仅一次性获取并运行容器化的 Cockpit Web 服务器
podman container runlabel --name cockpit-ws RUN registry.opensuse.org/suse/alp/workloads/tumbleweed_containerfiles/suse/alp/workloads/cockpit-ws:latest
通过软件包安装 Web 服务器
或者,可以将 Cockpit Web 前端直接通过软件包安装到 ALP 系统中。
transactional-update pkg install cockpit-ws reboot systemctl enable --now cockpit.socket
当然,可以使用 systemctl start 代替 systemctl enable 以仅执行 Web 服务器一次,而不是每次启动时执行。
通过软件包安装时,身份验证是在本地执行的,这意味着可以使用 root 凭据登录到 Web 界面,尽管这可能不是理想的安全设置。
添加更多功能到 Cockpit
通过 alp_cockpit 模式安装的软件包选择,开箱即用即可使用相当多的功能。但可以通过安装其他 Cockpit 扩展来扩展它。
指标
要启用当前指标的可视化,请安装 PCP Cockpit 扩展。
transactional-update pkg install cockpit-pcp reboot
该 Cockpit 扩展还提供了显示历史指标的可能性。为此,系统可能需要进行一些配置,但可以通过 Cockpit 用户界面中的几次单击轻松完成。
软件更新
可以使用 cockpit-tukit 软件包执行事务软件更新。要安装它,请使用以下命令
transactional-update pkg install cockpit-tukit reboot
kdump 管理
安装 Kdump 的 Cockpit 扩展允许启动和停止 Kdump 服务(尽管该服务只有在先前配置了 Kdump 时才有用,而 Cockpit 无法执行此操作),并更改转储文件的位置和格式。要安装扩展,只需执行通常的操作
transactional-update pkg install cockpit-kdump reboot
开发说明: Robert Simai 的团队正在增强 cockpit-kdump 与 (open)SUSE 的兼容性。进度跟踪在 https://jira.suse.com/browse/CSD-192(SUSE 内部链接)和 https://trello.com/c/orCGQkPg/49-follow-cockpit-kdump-enhancements-to-include-them-at-alp 上跟踪。
存储设备管理
要管理本地存储设备及其相关技术,请安装 Storaged Cockpit 扩展。
transactional-update pkg install cockpit-storaged reboot
目前,这仅在 ALP 的非事务性变体上才能 100% 正常工作。在默认事务性 ALP 中,一些操作不可靠。
虚拟机管理
cockpit-machines 软件包允许管理 libvirt 工件,如存储池、网络和虚拟机。
可以轻松地使用以下命令安装该软件包
transactional-update pkg install cockpit-machines reboot
安装后,单击 Cockpit 的“虚拟机”部分可能会导致类似于“虚拟化守护程序 (libvirt) 未激活”的消息。可以通过启用(或简单地启动)Cockpit 的“服务”部分中的 libvirtd 服务来轻松解决该问题。
开发说明: ALP 的计划是容器化运行 libvirt 堆栈。在撰写本文时,这作为 ALP 工作负载存储库中的 kvm 容器提供。这意味着我们应该重新考虑未来如何发布 cockpit-machines。我们可能需要基于该容器化的 libvirt 而不是安装在 ALP 系统上的 RPM libvirt 软件包。
如何在没有依赖项的情况下在 ALP OS 上安装 cockpit-machines(开发目的)
由于系统使用 transactional-update 安装软件包,因此无法安装没有依赖项的软件包。可以使用 shell 选项进行解决方法
transactional-update shell ... 2022-09-26 14:39:39 Executing `bash`:
下载 cockpit-machines 软件包并使用 rpm 命令安装它,然后退出 transactionnal-update shell
zypper download cockpit-machines rpm -vhi /var/cache/zypp/packages/repo-oss/noarch/cockpit-machines-270.2-2.1.noarch.rpm --nodeps exit
重新启动系统以使用包含已安装 cockpit-machines 软件包的最新快照
transactional-update reboot reboot
开发说明: 目前 cockpit-machines 仅连接到本地:在 src/config.js 文件中有一个 qemu:///system。此外,还有一个获取 libvirtd 状态的机制,需要进行调整,否则将显示一个空白页面。