問題背景:
我經常使用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
保持更新。