Skip to content

OpenSource Software Überblick für System Administratoren

Unter dem Namen IT Landscape for sysadmins ist eine kleine aber feine Übersicht diverser OpenSource Projekte zu finden.

Unterteilt in Kategorien wie Protokolle, Cloud & Virtualisierung, Storage, Monitoring, Support Systeme, Messaging, Automation oder Essentials finden sich viele bekannte FOSS (Free and Open Source Software) Tools.

IT-Landscape-for-sysadminsSolche Landschaftsgrafiken sind ja vom Marketing, Social Media oder IT Dienstleistern durchaus bekannt, bisher ist mir aber keine Übersicht für OpenSource Software untergekommen.
Umso besser, dass Alen Krmelj Mitte 2015 das Projekt Sysadmin Open Source Landscape ins Leben gerufen hat.

IT-LandscapeDie Sammlung kann sich jetzt schon sehen lassen und darf dank ihrer offenen Architektur von allen erweitert werden. Dazu genügt ein Klick auf das Plus Symbol in der jeweiligen Kategorie.

Wer sich die IT-Landschaft ausdrucken möchte, der kann dank der verschienden Ansichten (oben rechts) eine einfach Liste abspeichern. 

Fazit

Tolles Projekt, welches bei der Suche nach Lösungen in einem bestimmten Bereich sicherlich eine gute Hilfestellung im Hinblick auf eine große Auswahl an Software bietet. Gerade für Systemadministratoren oder andere Berufe im IT Wesen bietet diese Grafik einen Mehrwert.

IT Landscape

Admin Panels Part2: Cockpit - Leitstand für Fedora, CentOS oder Ubuntu

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.

cockpit

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.

cockpit-login

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

cockpit_install

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.

cockpit-uebersicht


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

cockpit-dashboard

 

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

 

Ubuntu Landscape Standalone Server (LDS) 15.10 unterstützt nun Container

Die letzten Tage wurde Ubuntu 15.10 Wily Werewolf (Link) veröffentlicht.
Gleichzeitig wurde auch der zentrale Ubuntu Verwaltungs Server Landscape auf eine neue Version 15.10 gehoben.

ubuntu
Wie der alte 15.01 Server als standalone Version für zehn virtuelle und zehn feste Ubuntu Maschinen installiert wird, hatte ich bereits beschrieben (Artikel). Darum werde ich heute nur auf ein Update eingehen. Hier sollte allerdings auf das neue Lizenzmanagement geachtet werden.

Landscape Standalone LDS 15.10 unterstützt nur noch Container

Die standalone Version zeichnet sich dadurch aus, dass keine weiteren Kosten entstehen und ist somit für eine kleine Umgebung durchaus geeignet.

Ein genauer Blick auf die Änderungen in 15.10 offenbart jedoch Änderungen bei der freien Lizenz.

"Otherwise, a free license with 10+50 seats (bare metal plus LXC containers) will be used"

Das heißt freie virtuelle Lizenzen fallen komplett weg, dafür sind 50 Container dazu gekommen. Bei einer kleine Infrastruktur mit virtuellen und harten Maschinen sollte über ein Update auf die aktuelle Version gut nachgedacht werden, da diese nach einem Update eventuell nicht mehr ausreicht. Für Freunde von Containerlösungen dürfte die neue freie Lizenz allerdings sehr interessant sein.

Update auf Landscape Server 15.10

Hier nun der kurze aber praktische Hinweis auf das Update.

Voraussetzung für ein Update ist ein funktionierende LDS Version 15.01.

Landscape-15.10

Ist dies gewährleistet muss zunächst muss das aktuelle PPA im System hinterlegt werden.

sudo add-apt-repository ppa:landscape/15.10
    sudo apt-get update
    sudo apt-get dist-upgrade
    

The following packages will be upgraded:
  juju-core landscape-hashids landscape-server landscape-server-quickstart

Das Überschreiben von bestehenden Konfigurationsdateien sollte unterlassen werden.

Configuration file '/etc/landscape/service.conf'
 ==> Modified (by you or by a script) since installation.
 ==> Package distributor has shipped an updated version.
   What would you like to do about it ?  Your options are:
    Y or I  : install the package maintainer's version
    N or O  : keep your currently-installed version
      D     : show the differences between the versions
      Z     : start a shell to examine the situation
 The default action is to keep your current version.
*** service.conf (Y/I/N/O/D/Z) [default=N] ? N

Die Installation verläuft in ihren Schritten voll automatisch und startet alle Dienste nach der Aktualisierung neu.

Probleme konnten keine festgestellt werden.

Nach der Installation steht das Entfernen des alten Repository an. 

sudo apt-add-repository --remove ppa:landscape/15.01

Landscape-15.10-Installation

Die Neuerungen des Landscape Servers 15.10

Die Highlights der neuen Version sind nicht überragend, aber auch nicht zu vernachlässigen.

  • Autopilot only supported on MAAS 1.8 or later
  • New charm to deploy Landscape
  • Juju deployed Landscape can be upgraded to future versions
  • HA (High Availability) cloud deployment
  • Openstack Kilo cloud deployment
  • Add hardware to existing cloud   

Die vollen Release Notes sind hier zu finden. Ein Blick in die volle Dokumentation lohnt ebenso.


Das könnte dich auch interessieren

Personal Landscape Server - mehrere Ubuntu Systeme im Netzwerk zentral verwalten

In den letzten Jahren erfreuten sich Konfigurationsmanagement Systeme (CM) großer Beliebtheit. Bekannteste Player auf dem Markt sind sicherlich Puppet, Saltstack, Chef oder Ansible. Alle diese Systeme haben ihre Vor- und Nachteile und sind als Community Edition für jeden verfügbar.

Ubuntu Landscape (Dedicated Server)

Canonical hat ein ähnliches Pferd im Stall, genannt Landscape, welches anders als die oben erwähnten Systeme nicht für heterogene Netze geeignet ist, sondern sich auf das eigene Betriebssystem konzentriert. Es lassen sich nur Ubuntu Server oder Clients damit zentral verwalten, überwachen oder aktualisieren.

Management___Ubuntu

Früher war das Systemmanagement-Tool nur im Zuge des Ubuntu Advantages Programm verfügbar, war mit Kosten verbunden und konnte nicht selbst gehostet werden. Inzwischen gibt es eine frei Version, welche 20 Linuxboxen erlaubt (10 virtuelle und 10 physische). Diese eignet sich für kleine Netze mit wenigen Clients, die zentral verwaltet werden wollen.

Lokale Installation Landscape Server

Das CM System lässt sich auf einem eigenen Server installieren. Da ein eigenes Repository der aktuellen Version 15.01 zur Verfügung steht, stellt dies keine große Hürde da. Als Basissystem ist ein Ubuntu Server 14.04 geeignet.

sudo add-apt-repository ppa:landscape/15.01
sudo apt-get update
sudo apt-get install landscape-server-quickstart

Nachdem die Installation abgeschlossen ist, kann unter https://landscape.local.de die Konfigurationsseite aufrufen werden. (Die Seite sollte über den DNS Namen aufgerufen werden, darum muss eventuell ein Eintrag in der Hosts gesetzt werden.

Landscape

Auf der Startseite muss zunächst Benutzername und Passwort vergeben werden, um dann im Anschluss einen Zugriffschlüssel zu generieren. Mit diesem Schlüssel können sich später Clients am Server authentifizieren.

Die Generierung kann unter dem eigenen Konto (oben rechts) vorgenommen werden.

Landscape-Key

Landscape Client einrichten und System am Server anmelden

Auch der Client steht als fertiges Paket zur Verfügung ist ebenso schnell installiert.

sudo apt-get update

sudo apt-get install landscape-client

Auch hier sollte bei Bedarf die Hostdatei editiert werden.

echo "10.10.0.10 landscape.local.de landscape" > /etc/hosts

Nun muss der Client am Verwaltungsserver registriert werden, dies ist mit dem folgenden Befehl möglich.

Die Installation erfolgt danach interaktiv.

sudo landscape-config --computer-title "mein server" --account-name standalone  --url https://landscape.local.de/message-system --ping-url http://landscape.local.de/ping


    The Landscape client must be started on boot to operate correctly.

    Start Landscape client on boot? (Y/n): y

    This script will interactively set up the Landscape client. It will
    ask you a few questions about this computer and your Landscape
    account, and will submit that information to the Landscape server.
    After this computer is registered it will need to be approved by an
    account administrator on the pending computers page.

    Please see https://landscape.canonical.com for more information.


    A registration key may be associated with your Landscape
    account to prevent unauthorized registration attempts.  This
    is not your personal login password.  It is optional, and unless
    explicitly set on the server, it may be skipped here.

    If you don't remember the registration key you can find it
    at https://landscape.canonical.com/account/standalone

Account registration key: Schlüssel (der Eingangs generiert wurde) eingeben

    The Landscape client communicates with the server over HTTP and
    HTTPS.  If your network requires you to use a proxy to access HTTP
    and/or HTTPS web sites, please provide the address of these
    proxies now.  If you don't use a proxy, leave these fields empty.

    HTTP proxy URL:
    HTTPS proxy URL:
    
    Landscape has a feature which enables administrators to run
    arbitrary scripts on machines under their control. By default this
    feature is disabled in the client, disallowing any arbitrary script
    execution. If enabled, the set of users that scripts may run as is
    also configurable.

    Enable script execution? [y/N]y

Diese Funktion kann durchaus aktiviert werden, da Scripte immer eine praktische Sache sind und oft benötigt werden. Das Sicherheitsrisiko sollte jedoch bedacht werden. Genau aus diesem Grund können die Scriptanwender im nächsten Schritt weiter eingeschränkt werden.

    By default, scripts are restricted to the 'landscape' and
    'nobody' users. Please enter a comma-delimited list of users
    that scripts will be restricted to. To allow scripts to be run
    by any user, enter "ALL".

    Script users: user1,user2,user3

Auch Gruppen sind möglich

   You may provide an access group for this computer e.g. webservers.

    Access group: admins

Zu guter Letzt kann das System noch getagt werden, damit es im Verbund schneller zu identifizieren ist.

    
    You may provide tags for this computer e.g. server,precise.

    Tags: landscape, demo, itrig, ubuntu, trusty

 
Nun startet der Client neu und scannt automatisch das Netz nach seinem Master.

 Stopping landscape-client daemon                                                                                                                                                                  [fail]
 Starting the landscape-client daemon                                                                                                                                                              [ OK ]

Request a new registration for this computer now? (Y/n): y
Please wait... We were unable to contact the server. Your internet connection may be down. The landscape client will continue to try and contact the server periodically.

Landscape Server mit selbstsigniertem Zertifikat einrichten

Wie der Fehlermeldung oben zu entnehmen ist, funktioniert die Verbindung zum Hauptserver anscheinend nicht. Praktischerweise schreibt Landscape unter /var/log/landscape ausführliche Logs.


    ERROR    [PoolThread-twisted.internet.reactor-1] Error contacting the server at https://landscape.local.de/message-system.
    Traceback (most recent call last):
    File "/usr/lib/python2.7/dist-packages/landscape/broker/transport.py", line 71, in exchange
    message_api)
    File "/usr/lib/python2.7/dist-packages/landscape/broker/transport.py", line 45, in _curl
    headers=headers, cainfo=self._pubkey, curl=curl))
    File "/usr/lib/python2.7/dist-packages/landscape/lib/fetch.py", line 109, in fetch
    raise PyCurlError(e.args[0], e.args[1])
    PyCurlError: Error 60: server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
    2015-08-06 16:37:27,963 INFO     [MainThread] Message exchange failed.
    2015-08-06 16:37:27,963 INFO     [MainThread] Message exchange completed in 0.18s.

Den Daten kann wiederum entnommen werden, dass ein Zertifikatsfehler vorliegt.

Das ist nicht weiter verwunderlich, denn es ist ein selbstsigniertes Zertifikat, welches dem Client nicht bekannt ist und deswegen nicht vertraut wird.

Die offizielle Landscape Anleitung empfiehlt ein offiziell signiertes Zertifikat, wirklich nötig ist dies nicht, denn die Struktur funktioniert auch mit einem selbstsignierten Zertifikat.
Lediglich ein wenig Kopierarbeit im Vorfeld ist notwendig.

Zertifikat vom Server kopieren

/etc/ssl/certs/landscape_server_ca.crt

und auf dem Client hinterlegen. Danach muss noch die /etc/landscape/client.conf angepasst werden

nano /etc/landscape/client.conf
    ssl_public_key = /etc/landscape/landscape_server_ca.crt

sudo service landscape-client restart

Und siehe da die Kommunikation mit dem Master funktioniert und der Client meldet sich via Oberfläche.

[MainThread] Starting urgent message exchange with https://landscape.local.de/message-system.
[PoolThread-twisted.internet.reactor-1] Sent 646 bytes and received 145 bytes in 2.44s.
[MainThread] Switching to normal exchange mode.
[MainThread] Server UUID changed (old=None, new=c744448a).
[MainThread] Accepted types changed: +test +register
[MainThread] Queueing message to register with account 'standalone' and tags xstudio,tomcat,apache,trusty with a password.
[MainThread] Starting message exchange with https://landscape.local.de/message-system.
[MainThread] Message exchange completed in 2.95s

Landscape-pending

Verwendung des Landscape Server

Die Verwendung des Server erfolgt über Kategorien, die einzelne Konfigurationen zulassen. So können unter "Alerts" die gewünschten Benachrichtigungen definiert werden. Diese setzen allerdings einen richtig konfigurierten Postfix Server auf dem Server selbst voraus.

Events-Landscape

Unter "Access Groups" können Geräte unterteilt oder über "Graphs/Scripts" verschiedene Befehle definiert werden. Auch Suchen lassen sich abspeichern. Der Punkt "MAAS" steht für Metal-as-a-Service und ist in dieser Konfiguration nicht installiert. Er ermöglicht das Ausrollen von fertig eingerichteten Paketen.

Package-management-LandscapeDie interessanteren Funktionen für das Gerätemanagement sind im Computerbereich untergebracht. Hier können die Hardwarreigenschaften eingesehen und Leistungsmerkmale (Monitoring) abgerufen werden.

Unter "Packages" kann definiert werden ob und wann neue Updates eingespielt werden sollen, auch eine Unterteilung in Sicherheits- und  Normale Updates ist möglich. Der Punkt "Reports" bietet eine weitere Übersicht der Geräte und informiert beispielsweise über Clients die mit den momentan Update Einstellungen nicht berücksichtigt werden. (Doku)

Juju und Openstack

Zwei weitere Punkte werden im Landscape Menü gelistet, diese sollen hier nicht näher behandelt werden. Bei Juju handelt es sich um einen Tool welches für die Softwarepakete unter MAAS zuständig ist (Orchestration), sozusagen ein apt für die Cloud. So lassen sich darüber verknüpfte Software Templates definieren, um sie danach auf diverse Geräte auszurollen (Video).

Die Installation von Juju ist schnell erledigt.

sudo add-apt-repository ppa:juju/stable
sudo apt-get update
sudo apt-get install juju-quickstart

Ebenfalls neu im Boot ist Openstack, zwar noch als open beta, aber schon eingebunden. Voraussetzung dafür sind die Tools Maas, Juju und Landscape zusammen.

was-ist-juju

Fazit

Für kleine Unternehmen, die in ihrer Infrastruktur Ubuntu Geräte einsetzen und diese zentral verwalten möchten, bietet sich Landscape gut an. Gerade in Bezug auf Updates und Scripte ist ein zentraler Anlauf- und Installationspunkt gegeben. Auch das Monitoring der 20 Geräte passt gut ins Bild.

Größere Unternehmen müssen durchaus etwas tiefer in die Tasche greifen, wenn sie über die freie Anzahl an Ubuntu Geräten kommen. Hier bieten sich andere Anbieter wie Ansible oder Puppet eher an. Allerdings ist der Administrations- und Konfigurationsaufwand auch ungleich höher.