Software-Pakete effizient im Netzwerk verteilen

Saltstack – Automatisierung mit Open Source

| Autor / Redakteur: Thomas Joos / Stephan Augsten

Saltstack ist eine durchaus interessante Open-Source-Alternative zu Puppet, Chef und Ansible.
Saltstack ist eine durchaus interessante Open-Source-Alternative zu Puppet, Chef und Ansible. (Bild: Saltstack.com)

Saltstack ist eine Open-Source-Software, mit der Administratoren Serversysteme automatisieren und Software verteilen können. Wie bei Puppet, Chef und Ansible lassen sich damit Bereitstellungen effizient automatisieren.

Saltstack erlaubt die zentrale Automatisierung der Installation und der Konfiguration von Software auf Servern und Arbeitsstationen. Mit der Lösung lassen sich Konfigurationen automatisieren, Software-Updates installieren und Anwendungen installieren oder deinstallieren.

Das kann Saltstack

Im Fokus von Saltstack stehen vor allem Unix-Rechner und Linux. Natürlich lassen sich auch Windows-Rechner anbinden, allerdings nur als Client. Saltstack selbst wird vor allem auf Linux-Rechnern betrieben. Auch Virtualisierungslösungen und die beteiligten Hosts wie zum Beispiel VMware vSphere lassen sich mit Saltstack automatisieren.

Um Rechner zu automatisieren, wird ein zentraler Server benötigt. Die Verteilung der Software und die automatisierte Konfiguration erfolgen über YAML-Skripte, die als „State-Files“ bezeichnet werden. Basis von Saltstack ist Python.

Saltstack kann vom zentralen Server aus über das Netzwerk auch Befehle auf den angebundenen Clients ausführen, ähnlich wie Puppet, Chef und Ansible. Die vier Lösungen stellen den Löwenanteil dar, wenn es darum geht, die Verteilung von Anwendungen im Netzwerk zu automatisieren.

Saltstack arbeitet mit Master und Minions

Die Kommunikation zwischen den Saltstack-Servern (Master) und den angebundenen Clients, auch Minions genannt, erfolgt mit AES-Verschlüsselung und ZeroMQ. Damit sich Anwendungen und Server automatisieren lassen, spielt die Kommunikation zwischen Master und Minions eine wichtige Rolle.

Die Verbindung erfolgt entweder per SSH oder über einen Python-Agenten, der auf den Client-Rechnern installiert sein muss. Im Netzwerk können mehrere Master im Einsatz sein, die wiederum ihre Konfiguration replizieren. Master lassen sich außerdem als Minion konfigurieren, um auch die Saltstack-Konfiguration selbst zu automatisieren.

Saltstack lässt sich in den meisten Fällen direkt über die Installationsquelle der entsprechenden Linux-Distribution installieren. Generell ist Saltstack in wenigen Minuten eingerichtet und bereits in der Standardkonfiguration einsatzbereit. Erste Tests lassen sich mit Vorlagen und Beispielen erstellen, die im Installationsumfang enthalten sind. Um eine Testumgebung aufzubauen, kann der Master selbst auch als Minion definiert werden.

Neben der kostenlosen Community Edition ohne grafische Oberfläche bietet der Hersteller auch eine kostenpflichtige Enterprise-Version an. Im Rahmen der Lizenzierung erhält der Kunde entsprechenden Support und bessere Verwaltungsmöglichkeiten mit einem Frontend.

Minions automatisieren

Die Minions werden mit Jobs automatisiert, über welche die Konfigurationsdateien verteilt werden. Wie bei anderen Automatisierungslösungen senden auch hier die Minions relevante Informationen – zum Beispiel eingesetzte Distribution, verfügbaren Arbeitsspeicher und andere Details – zum Server.

Auf Windows-Rechnern erfolgt die Installation des Clients auf Basis von Python. Die dazu notwendigen Voraussetzungen sind bei den Installationsdateien enthalten. Die Anbindung an den Saltstack-Server (Master) erfolgt über einen Systemdienst.

Die verschiedenen Saltstack-Module auf dem Master kommunizieren AES-verschlüsselt über den ZeroMQ-Message-Bus mit den Minions. Daher ist es wichtig, dass die Schlüsselpaare zwischen Master und den Minions fehlerfrei funktionieren.

In der Konfiguration von Saltstack kann festgelegt werden, dass der Master alle Minions automatisch akzeptiert, die sich mit dem Server verbinden. Alternativ kann auch festgelegt werden, dass nur genehmigte Minions die Skripte zur Automatisierung vom Master erhalten.

Mit Attributen lassen sich in Saltstack Minions gruppieren und so zum Beispiel bestimmte Aufgaben nur an diese Gruppe von Servern verteilen. Saltstack verwendet Grains, um die Attribute der Minions zu speichern. Dadurch lassen sich wichtige Informationen zum Minion speichern, zum Beispiel das eingesetzte Betriebssystem und die installierte Version.

States und Module zur Automatisierung nutzen

Damit der Master die angebundenen Minions automatisieren kann, bietet Saltstack zwei verschiedene Möglichkeiten. States werde als Datei auf dem Master gespeichert. Administratoren legen fest, welche Minions die einzelnen States erhalten sollen. States werden in YAML geschrieben, eine recht einfache Sprache zur Serialisierung von Befehlen.

In größeren Umgebungen lassen sich State-Dateien auch gruppieren. Die Ausführung einer solchen Gruppe erfolgt dann über einen einzelnen Befehl, anstatt alle States manuell mit einem eigenen Befehl zu starten. Das entlastet Master und Minions, wenn viele State-Dateien im Einsatz sind.

Die zweite Variante sind die bereits erwähnten Module. Diese werden in der Befehlszeile auf dem Master konfiguriert und gestartet. Unabhängig davon welche Variante zur Automatisierung eingesetzt wird, erfolgt die Kommunikation zwischen Minion und Master immer vom Minion aus. Das bietet den Vorteil, dass Administratoren auf den Minions keine Firewall anpassen müssen, da auf den meisten Betriebssystemen die ausgehende Kommunikation automatisch erlaubt ist.

Fazit

Saltstack ist durchaus eine interessante Alternative zu Puppet, Chef und Ansible. Es lohnt sich einen Blick auf alle vier Lösungen zu werfen, wenn im Unternehmen auf Automatisierung gesetzt werden soll. Im Gegensatz zu Puppet und Chef baut Saltstack auf Python aus. Wer im Unternehmen bereits Know-how in diesem Bereich hat, erreicht mit Saltstack schnelle Ergebnisse. Allerdings ist Saltstack auch komplizierter in der Verwaltung als Ansible.

Puppet und Chef bauen auf Ruby auf und sind mindestens genauso komplex, aber auch effizient, wenn es um die Automatisierung von Rechnern geht. Der Vorteil von Saltstack besteht darin, dass die Umgebung schnell einsatzbereit ist. YAML ist schnell erlernbar und nach ersten Tests kommen Administratoren und Entwickler schon ein ganzes Stück weiter, wenn es um die Automatisierung von Netzwerken geht.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 44852248 / Configuration-Management)