使用 Cockpit 管理你的 Raspberry Pi

使用 Cockpit 建立对你的 Raspberry Pi 的集中控制。
110 位读者喜欢这篇文章。
Kurt Stam's LEGO-encased Raspberry Pi cluster

Kurt Stam 拍摄,CC BY-SA 4.0 授权

去年,我写了关于使用 Cockpit 管理我的 Linux 服务器的文章。它是一个基于 Web 的工具,为你提供一个简洁而强大的界面,用于管理多台服务器及其相关的服务和应用程序。它还可以简化日常管理任务。

在本文中,我将介绍如何在 Raspberry Pi 操作系统 (OS) 上安装用于 Linux 服务器的 Cockpit Web 控制台,Raspberry Pi 操作系统是 Raspberry Pi 基金会提供的标准操作系统。我还将简要介绍其功能。

在 Raspberry Pi OS 上安装 Cockpit

使用具有 sudo 权限的帐户,通过安全外壳 (SSH) 登录你的 Raspberry Pi 系统。如果你还没有设置帐户,请设置一个。

$ ssh pibox
alan@pibox's password:
Linux pibox.someplace.org 5.10.17-v7+ #1403 SMP Mon Feb 22 11:29:51 GMT 2021 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Tue May  4 09:55:57 2021 from 172.1.4.5
alan@pibox:~ $

在 Raspberry Pi OS 上安装 Cockpit Web 控制台的命令与在 Linux 服务器上一样简单

$ sudo apt install cockpit

Cockpit 仅需要 60.4 kB 的磁盘空间。加上它的几个软件包依赖项,总共占用 115MB。

安装过程将负责设置和启动服务。你可以使用 systemctl 命令验证状态。

$ systemctl status cockpit.socket
● cockpit.socket - Cockpit Web Service Socket
   Loaded: loaded (/lib/systemd/system/cockpit.socket; enabled; vendor preset: enabled)
   Active: active (listening) since Tue 2021-05-04 10:24:43 EDT; 35s ago
     Docs: man:cockpit-ws(8)
   Listen: 0.0.0.0:9090 (Stream)
  Process: 6563 ExecStartPost=/usr/share/cockpit/motd/update-motd  localhost (code=exited, status=0/SUCCESS)
  Process: 6570 ExecStartPost=/bin/ln -snf active.motd /run/cockpit/motd (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 2181)
   CGroup: /system.slice/cockpit.socket

使用 Cockpit

连接

默认监听端口是 9090。打开你喜欢的 Web 浏览器并输入地址,例如 https://pibox:9090

现在你可以使用你的常规用户帐户登录。同样,在这个帐户上拥有 sudo 权限会很有帮助——很可能就是你用于 SSH 和运行 Apt 的那个帐户。请务必选中“为特权任务重用我的密码”的复选框。

管理你的 Pi

Cockpit 的初始屏幕以系统开始,并将提供当前 CPU 和内存使用情况的详细信息和图表。

你可以从此屏幕查看硬件详细信息。

通过单击左侧列中的每个项目(例如,日志、存储、服务等)来浏览。这些是标准的 Cockpit 部分,并且相当容易理解。让我快速描述一下每个部分。

日志

此部分显示日志。可以按日期和严重程度进行过滤。

存储

存储部分显示已安装的物理驱动器和 RAID 设备。显示大小和序列号等详细信息。显示读/写活动和实际空间使用情况的图表。存储特定的日志显示在底部。

网络

此部分显示发送和接收活动、IP 地址和网络特定日志。你还可以使用相应的按钮添加更多网络设备;例如 bonds、bridges 和 VLAN。

账户

此处显示现有帐户。单击每个帐户进行管理,或使用“创建新帐户”按钮添加用户。帐户也可以在此处删除。

服务

此部分允许管理员查看所有系统服务的状态。单击任何服务会将你带到一个屏幕,其中包含启动、重启和禁用等标准任务。

应用程序

通常,此屏幕提供各种应用程序,用于管理诸如 389 Directory Server 或创建 Podman 容器等功能。但在我的 Raspberry OS 上,此屏幕仅显示消息“未安装或没有可用的应用程序”。在撰写本文时,也许尚未实现此功能。尽管如此,你确实会怀疑这些类型的进程对于 Raspberry PI 硬件来说是否太重了。

软件更新

保持软件最新是任何系统管理员最重要的任务之一。Cockpit 的“软件更新”部分检查并应用更新。

终端

Cockpit 最简洁的功能之一是终端。你可以使用它来代替打开单独的终端模拟器并使用 SSH。我使用终端安装了 ScreenFetch

$ sudo apt install screenfetch

我使用 ScreenFetch 生成了这个屏幕截图

使用 Cockpit 进行集中控制

Cockpit 在 Raspberry Pi 上的行为与在任何其他 Linux 系统上一样。你可以将其添加到仪表板以进行集中控制。它允许组织将基于 Raspberry Pi 的服务和系统集成到他们的整体 Linux 基础设施中,无论在何处 Cockpit 被用作管理仪表板解决方案。这非常方便,因为 Pi 通常在通常缺少 KVM 访问权限的高密度机架式数据中心中以无头模式运行。

接下来阅读什么
Alan Formy-Duval Opensource.com Correspondent
Alan 拥有 20 年的 IT 经验,主要在政府和金融领域。他最初是一家增值经销商,之后转入系统工程领域。Alan 的背景是高可用性集群应用程序。他在 Oracle Press/McGraw Hill 的《Oracle Solaris 11 系统管理》一书中撰写了“用户和组”以及“Apache 和 Web 堆栈”章节。

8 条评论

好文章...

如何远程管理家庭设备上的 Cockpit(即,在防火墙后,仅限私有 IP)?

我通过 wifi 远程访问 Raspberry Pi 安装了 cockpit。network-manager 的默认随机 MAC 功能破坏了我的会话并绕过了我的 DHCP 预留。我花了一段时间才找到回到我的 Raspberry Pi 的方法并弄清楚发生了什么。

正如 @jordana 提到的,这会随机化你的 MAC 地址。如果你有 DHCP 预留或路由器上的各种 MAC 规则,这将绕过它们。如果你是第一次通过 SSH 安装 Cockpit,你将会遇到麻烦。我的 SSH 会话在安装过程中中断了,所以我看不到真正发生了什么。这很糟糕,安装至少应该警告用户会发生这种情况。
即使你使用 apt purge Cockpit*,你的 MAC 地址仍然会在每次系统重启时随机化。我花了一段时间才弄清楚如何解决这个问题。即便如此,我还是选择之后通过 Timeshift 恢复了备份。

我移除了 network-manager,这使得 DHCP 回退到出厂 MAC 地址。但我同意你的观点,在安装过程中更改 MAC 和 IP 地址过于侵入性,应该有一个选项来避免这种情况。

回复 by misokatsu_soda_pan

@jordana,由于 MAC 地址随机化,我在安装 cockpit 后重新映像了 raspian OS。你能提供一下说明吗?

另外,我的“推荐软件”停止工作了,并抛出以下错误“更新软件包数据时出错 - 无法在离线时刷新缓存”。不知道还有什么坏了?

@kkumar_k
我使用了
sudo apt remove network-manager
我在我的 Wi-Fi 接入点上看到了一些 MAC 随机化的副作用,阻止了我的 Raspberry Pi。自从我移除了 network-manager 并重启了我的 Raspberry Pi 后,它又可以正常工作了。

回复 by kkumar_k

我发现网络端连接失败,但实际上我已经连接了。最后我选择了 webmin。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.