Tools für eine zentrale Verwaltung von Linux Servern gibt es einige. Mit Ajenti und LinuxDash hatte ich bereits zwei vorgestellt.
Einen weitern interessanten Ansatz verfolgt Red Hat seit einiger Zeit.
Cockpit - Serververwaltung
Mit Cockpit haben sie eine frei über Github entwickelte Linux Steuerzentrale in petto, welche auf neueren Distributionen von Fedora, CentOS oder ArchLinux bereits vorinstalliert oder zumindest als fertiges Installationspaket bereit liegt.
Cockpit setzt auf systemd und ist somit auf dem aktuellen Ubuntu 14.04 LTS nicht unbedingt praktikabel, da aber Ubuntu 16.04 bereits in den Startlöchern steht, sieht es für Cockpit auf Ubuntu Systemen in Zukunft ebenfalls gut aus.
Das Verwaltungstool unterstützt nicht nur verschiedene Systeme, es kann über das zentrale Dashboard auch auf eine ganze heterogene Umgebung zugreifen, um diese zu verwalten. Die Kommunikation zwischen den Maschinen erfolgt über SSH.
Schlicht aber effektiv
Die einfache Bedienung des Tools fängt beim Login an, hier werden automatisch hinterlegte Nutzer mit root Rechten für den Login freigeschaltet.
Nicht nur die moderne und aufgeräumte Oberfläche wirkt erfrischend, auch die Auswertungen von Systemperformance ist schlicht und ausreichend.
Die Usability endet bei einem eingebundenen Terminal, welches das Arbeiten auf der Konsole über die Oberfläche ermöglicht.
Sichere Sache
Anders als Webmin, Ajenti und Co, benötigt Cockpit keinen Apache Server oder ähnliches, welcher ständig in Betrieb sein muss. Der eigene Dienst cockpit-ws startet den Webserver nur, sobald eine Anfrage auf dem Standard Port 9090 ankommt. Sollten keine weiteren Anfragen auf dem Port ankommen, legt er sich nach 90 Sekunden Inaktivität wieder schlafen.
Ist der Webserver aktiv kann er über HTTP und HTTPS erreicht werden, HTTP wird aber automatisch auf HTTPS umgeleitet. Ein Zertifikat kann unter "/etc/cockpit/ws-certs.d" abgelegt werden. SSL3 und RC4 sind von Haus aus deaktiviert.
Die wichtigsten Cockpit Konsolen Befehle
Prüfen welches Zertifikat verwendet wird
sudo remotectl certificate
Cockpit manuell starten
sudo systemctl enable cockpit.socket
sudo systemctl start cockpit.service
sudo systemctl status cockpit.service
Cockpit Autostart Eintrag erstellen
sudo systemctl enable cockpit.socket
Anderen Port hinterlegen
Temporär
sudo nano /usr/lib/systemd/system/cockpit.socket
oder permanent
sudo cp /lib/systemd/system/cockpit.socket /etc/systemd/system
sudo nano /etc/systemd/system/cockpit.socket
ListenStream=666
sudo systemctl daemon-reload
sudo systemctl restart cockpit.socket
Cockpit Oberfläche (Standardport)
https://cockpit-server:9090
Installation unter CentOS
Unter bereits voll unterstützen Systemen, ist die Installation ein Kinderspiel
yum install cockpit
sudo systemctl start cockpit
Den Dienst erlauben
systemctl enable cockpit.socket
Wenn nötig die Firewall öffnen
firewall-cmd --permanent --zone=public --add-service=cockpit
sudo firewall-cmd --reload
Das System ist nun über den oben erwähnten Port ereichbar.
Installation from Source (Ubuntu)
Eine Installation ist eigentlich erst ab Ubuntu 15.10 sinnvoll, aber dennoch auf 14.04 möglich.
Pakete installieren
sudo apt-get install xsltproc libglib2.0-dev libjson-glib-dev libpolkit-agent-1-dev libkrb5-dev liblvm2-dev libgudev-1.0-dev libssh-dev libpam0g-dev libkeyutils-dev libpcp3-dev libpcp-import1-dev libpcp-pmda3-dev intltool xmlto libxslt1-dev selinux-policy-dev checkpolicy selinux-policy-doc libdbus-1-dev libsystemd-dev glib-networking
wget https://github.com/cockpit-project/cockpit/releases/download/0.102/cockpit-0.102.tar.xz
tar xvf cockpit-0.102.tar.xz
cd /cockpit-0.102
sudo ./configure
make
make install
Mögliche Fehler
Starting Cockpit Web Service...
remotectl[26324]: Generating temporary certificate using: openssl req -x509 -days 36500 -newkey rsa:2048 -keyout /usr/local/etc/cockpit/ws-certs.d/0-self-signed.P7XPFY.tmp -keyform PEM -nodes -o
remotectl[26324]: remotectl: /usr/local/etc/cockpit/ws-certs.d/0-self-signed.cert: TLS support is not available
systemd[1]: cockpit.service: Control process exited, code=exited status=1
systemd[1]: Failed to start Cockpit Web Service.
systemd[1]: cockpit.service: Unit entered failed state.
systemd[1]: cockpit.service: Failed with result 'exit-code'.
Lösung
sudo apt-get install glib-networking
Installation von PPA (Ubuntu)
Via PPA fällt die Installation um einiges leichter, allerdings kommt hier ein relativ altes Installationspaket zum Einsatz (0.38).
sudo add-apt-repository ppa:jpsutton/cockpit
sudo apt-get update
sudo apt-get install cockpit
Ubuntu 14.04
Um Cockpit unter älteren Systemen zu starten, kann nicht auf systemd zurückgegriffen werden, es startet hier wie folgt.
sudo /usr/sbin/remotectl certificate --ensure --user=root
sudo /usr/libexec/cockpit-ws
Natürlich kann die mit einem eigenen Init Script automatisiert werden, dies bleibt jedem selbst überlassen.
Fazit
Sowohl für einzelne Server, als auch für kleinere Netzwerke, bestehend aus Linux Rechnern, bietet Cockpit eine Möglichkeit Server einfach zu warten und zu überwachen. Durch die leichte Installation und die klare Oberfläche ist sie besonders für Einsteiger geeignet.
Leider gibt es für Ubuntu Systeme bisher keine offiziellen Pakete. Das PPA ist leider nicht auf dem neuesten Stand. Eventuell ändert sich dies mit Ubuntu 16.04 LTS.
Mit dem Landscape Server bietet Canonical bereits eine eigene Ubuntu Server Verwaltung und Performance Analyse an, welche auf bis zu 10 Systemen umsonst angewendet werden kann. (siehe Artikel).
Welches Admin Tool für die eigenen Bedienungen geeignet ist, muss wohl immer individuell entschieden werden.
Quellen
http://www.golem.de/news/cockpit-angesehen-die-einfache-steuerzentrale-fuer-linux-server-1507-115035-3.html
http://cockpit-project.org/guide/latest