Definition „Salt“ Was ist SaltStack?

Autor / Redakteur: LineFeed / Stephan Augsten

Das DevOps-Toolset SaltStack oder kurz Salt dient der automatisierten Steuerung und Überwachung die Infrastruktur. Die Orchestrierung von Cloud-Ressourcen, Containern und virtuellen Servern ist dabei ebenso möglich wie manuelle Remote-Ausführung und Konfigurationsmanagement.

Anbieter zum Thema

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)

In welchem Umfeld und wie positioniert sich Salt?

Von der Fernwartung über Update-Prozesse bis hin zur automatisierten Reaktion auf kritische Ereignisse: Für viele wiederkehrende Aufgaben hatten und haben Systemadministratoren passende Skripte parat. Um die Automatisierung zu vereinfachen, sind über die Jahre einige Tools entstanden, CFEngine bereits 1993.

SaltStack (im Folgenden Saltstack oder Salt) ist eine vergleichsweise junge Open-Source-Lösung in dieser Tradition. Urheber des 2011 veröffentlichten Tools ist Thomas S. Hatch, der Stand 2018 auch Hauptentwickler und CTO von Saltstack ist. Der Hersteller beschreibt die Kerneigenschaften der gelegentlich auch Saltstack Plattform oder Saltstack genannten Software als:

  • einfach aufzusetzen („in Sekunden einsatzbereit“)
  • skalierbar („ausreichend für die Verwaltung zehntausender Server“)
  • schnell („steuert diese und kommuniziert mit ihnen in Millisekunden“)

Was ist Salt?

Salt ist zunächst als System für die Fernausführung im Rahmen der Systemadministration gestartet. Über die modulare Struktur erhielt es sogleich eine Erweiterung für das Konfigurationsmanagement. Salt bewirbt sich aber auch mit dem jüngeren Term „Infrastrukturorchestrierung“. Hier zeigt sich ein Fokus, der von der klassischen Systemadministration wegführt, hin zu Cloud-Computing, DevOps und IaC (Infrastructure as Code).

Diese Orientierung spiegelt sich ebenfalls in der Softwarearchitektur von Salt. Bei der ursprünglichen Implementierung setzte Hatch auf ZeroMQ, eine leichtgewichtige Software-Bibliothek für die Warteschlangen-basierte Interprozesskommunikation, speziell in verteilten Systemen, die keinen Message-Broker benötigt. Zur Verbesserung der Skalierbarkeit ist Salt seit 2014 alternativ mit dem eigens entwickelten Reliable Asynchronous Event Transport Protocol (RAET) nutzbar.

Was ist besonders an Salt?

Salt zeichnet sich gegenüber ähnlichen Systemen wie Ansible, Chef oder Puppet durch seine Vielseitigkeit aus. Es ist sowohl mit als auch ohne Agenten (Agent-less) nutzbar – ein Alleinstellungsmerkmal –, kann im Push- und im Pull-Modus arbeiten und bietet einen Verify-Mode. Zudem unterstützt das System eine vollständige gegenseitige Authentifizierung von Server und Client.

Die Erweiterung Salt Configuration Automation nutzt eine einfache YAML-Syntax sowie Jinja-Templates für die wahlweise imperative oder deklarative Definition der Software-Konfigurationen. Als Alternative zu nativen Chef Recipes und Puppet Manifests lässt sich die Salt Remote Execution Engine zudem für die Orchestrierung dieser Konfigurationsmanagementsysteme einsetzen.

Salt verwaltet diverse Unix- und Unix-kompatible Systeme (BSD, Linux) ebenso wie MacOS und Windows-Clients. Salt Cloud bietet Schnittstellen für die Konfiguration und Steuerung zahlreicher Cloud-Systeme, von Amazon Webservices (AWS) bis Xmission. Darüber hinaus lässt sich das Tool für private Clouds und die Automatisierung von virtuellen Serverumgebungen einsetzen.

Ereignis-gesteuerte Orchestrierung

Salt verteilt nicht nur vorgefertigte Konfigurationen, sondern ist auch in der Lage, auf Ereignisse zu reagieren, die interne Komponenten der Software wie auch die verteilten Systeme in der verwalteten Infrastruktur miteinander austauschen. Das ermöglicht eine Autonomie der Systemsteuerung im Sinne der selbstheilenden Systeme von CFEngine 2 und IBMs Autonomic Computing.

Verfügbarkeit, Lizenzierung und Support

Bei der Lizenzierung von Salt setzt Saltstack auf ein Freemium-Modell. Abgesehen von der speziellen grafischen Benutzeroberfläche von Saltstack Enterprise ist die gesamte Funktionalität ebenso in Salt Open enthalten und unter der Apache Lizenz 2.0 verfügbar. Die quelloffene Salt Software gibt es als getestete Pakete für CentOS, Debian, RedHat (RHEL), Ubuntu und Windows.

Ausschließlich Enterprise-Kunden von Saltstack erhalten den kommerziellen Support des Herstellers. Den Nutzern der freien Version steht eine Community mit zahlreichen, unterschiedlichen Kanälen sowie das GitHub-Repository für die aktive Mitarbeit an der Software zur Verfügung:

  • Nutzergruppen, meist über Meetup organisiert, beispielsweise in München und Zürich.

(ID:45328142)