Artikel mit Tag konfigurationsmanagement

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.