As I've been redesigning how i use my homelab, having a central console I can go to to manage the servers and get viability has become more of a requirement for my homelab setup.

I have the key based ssh setup, I have software sat on each server for management of tools, what I was looking for was a nice web interface which i could log into and perform basic management tasks on the servers.

Having had a look at a few options from Webmin to the Suse Manager software, i have found myself using Red Hat Cockpit for this purpose

Cockpit is a free and open source web-based server management tool. By default, Cockpit comes preinstalled on an RHEL 8 server. But, it is not activated. A sysadmin must enable it. One can see the server in a web browser and perform system tasks with a GUI/mouse. It is easy to start containers, administer storage or users, configure networks, and inspect log files on RHEL 8. The Cockpit web interface is user-friendly for new to Linux users and seasoned sysadmins too.

However I don't use RHEL8, I use OpenSUSE Leap and Ubuntu 18.04 as my core server base. So how do I set this up?

OpenSuse

I've installed my servers using the minimal OpenSUSE Leap install so need to add a nw repository to install Cockpit. the following commands need to be run on any OpenSUSE server you want to manage from Cockpit

sudo zypper addrepo https://download.opensuse.org/repositories/systemsmanagement:cockpit/openSUSE_Leap_15.1/systemsmanagement:cockpit.repo

sudo zypper refresh

Type A to Trust Always

sudo zypper in -y cockpit cockpit-bridge cockpit-docker cockpit-pcp cockpit-ws

Zypper is seeminly smart enough to know if you don't have docker installed to warn you you don't need to install cockpit-docker

sudo systemctl start cockpit
sudo firewall-cmd --add-service=cockpit --zone=public --permanent
sudo firewall-cmd --reload

Ubuntu

Ubuntu server out of the box is a simple process to install Cockpit

sudo apt update
sudo apt install cockpit -y

Open your firewall port on 9090/tcp if you have one setup.

Central Console

Once cockpit is installed on the machines you wish to manage, choose one to be your central console and connect to

https://<ip or dns>:9090

You will be presented with an OS tailored login screen

Login using your normal login creds for the box

Click on Dashboard on the task bar on the left

Click on the Plus Icon to the far right of the server block

Add the IP Address of one of the other machines you installed Cockpit on

Click on Add

As you repeat this for all the servers, they will appear under the servers block in Dashboard

Servers can also be selected under the Host option

Authentication

Some of my boxes I've locked out as needing a key to login to them, and when adding them to Cockpit i get an authentication error. To resolve this on the "Master node" (The one i'm using to see all the other machines from) I Needed to click on Authentication in the User Menu

From here I was able to enable the encryption keys to allow login to the remote boxes. There is additional information here about this.

https://cockpit-project.org/guide/latest/authentication

https://cockpit-project.org/guide/172/feature-machines.html

Further Reading

Blog posts — Cockpit Project
Cockpit makes it easy to administer your GNU/Linux servers via a web browser.

Cockpit Project — Cockpit Project
Cockpit makes it easy to administer your GNU/Linux servers via a web browser.