问题背景:
我经常使用cockpit进行管理服务器。https://cockpit-project.org/;这是历史遗留原因。这种方式是之前本科毕业去 RedHat Beijing 实习的时候从 RedHat 7 文档中学习到的。
最近实验室项目的运行过程中,我需要使用 cockpit 管理 ubuntu server服务器。关于cockpit 我就不多介绍了,用过的同学,基本上都懂。
我照常安装 cockpit,启用服务,并进行使用。但是发现,在ubuntu平台上,cockpit的支持,不如对fedora的好。尤其是缺少了lvm管理的功能。(下文会讲到,我误会了cockpit,原来只是少安装了一个模块)
因为这个原因,我前段时间写了一篇关于LVM管理方案的博客:The GUI tool of LVM; LVM 图形界面管理工具;LVM GUI;LVM Webconsole; Webmin探索;
上面详细介绍了LVM GUI界面管理的方案,并给出了我自己的评价。虽然webmin功能很丰富,但我还是比较习惯服务器环境下cockpit的管理方式。
所以,今天我简要手动适配一下 cockpit 对于 ubuntu平台。并将解决方案,做成一个 github repo,这样我每次使用的时候,可以直接git clone 下来,并使用脚本运行。
下面进行简要记录,本博客主要是本人个人备忘。可能有些细节,我没详细说,相信你对 linux 平台足够熟悉的话,还是能理解我的思路的。
过程记录:(平台 ubuntu 20.04.1)
- github 下载最新的release; cockpit-234.tar.xz 和 cockpit-cache-234.tar.xz;到相同目录,第二个包为npm的模块缓存,用于构建前端的。
- 创建安装目录:mkdir -p /root/cockpit/cockpit-bin
- 运行 ./configure; ./configure --prefix=/root/cockpit/cockpit-bin , 进行配置安装位置;配置过程中可能会产生错误,请注意解决依赖;
- 解决 gio-2.0 安装问题:apt-get install libglib2.0-dev
- 解决 libsystemd 问题:apt install libsystemd-dev
- 解决 json-glib-1.0 问题;apt install libjson-glib-dev
- 等;后面还有很多依赖问题,我这里就不一一写出了;
- 具体脚本可以参考github项目:https://github.com/yaowenxu/small-projects/blob/master/Cockpit-Standalone/cockpit-standalone-install.sh
通过上述步骤,可以完成独立安装cockpit的需求。但是我通过运行才发现最新的版本同样不能管理lvm;通过查找cockpit文档才发现,cockpit-storaged基于udisks2进行实现。
我们通过apt查看,发现本机并没有安装udisks2-lvm2模块。我们只要安装上该模块,并重新启动udisks和cockpit即可。具体情况见下图所示:
使用的命令:
#!/bin/bash # 进行从 apt 安装,并且重启服务; apt install cockpit apt install udisks2-lvm2 systemctl restart udisks2.service systemctl daemon-reload systemctl restart cockpit.socket systemctl restart cockpit.service
保持更新。