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?
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 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.
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
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.