Skip to main content

SaltStack

Was ist SaltStack?

SaltStack ist eine Python-basierte Open-Source Konfigurations-Verwaltungssoftware – kurz: Konfigurationsmanagement – und ein Remote-Ausführungsmodul. Es unterstützt den Ansatz “Infrastruktur als Code” für die Bereitstellung und das Cloud-Management und konkurriert hauptsächlich mit Ansible, Chef und Puppet.

Konfigurationsmanagement

Konfigurationsmanagement ist ein System-Engineering-Prozess, mit dem die Leistung, die funktionalen und physischen Eigenschaften eines Produkts mit seinen Anforderungen, dem Design und den Betriebsinformationen während seiner gesamten Lebensdauer konsistent sind. Der Prozess wird häufig von Organisationen verwendet, um Änderungen während des Systemlebenszyklus von komplexen Systemen, wie Informationssystemen, zu verwalten. Der Prozess wird auch mit IT-Service-Management im Sinne von ITIL und mit anderen Domänenmodellen verwendet.

Entwicklung

Saltstack entstand aus der Notwendigkeit der Hochgeschwindigkeits-Datenerfassung und -ausführung in Systemverwaltungsumgebungen. Der Autor von Salt, Thoms S. Hatch, hatte zuvor eine Reihe von In-House-Lösungen für Unternehmen entwickelt, um das Problem zu lösen, fand jedoch seine und andere Open-Source-Lösungen als mangelhaft. Hatch entschied sich für die ZeroMQ-Messaging-Bibliothek, um die Hochgeschwindigkeitsanforderungen zu erfüllen und baute die Software mit ZeroMQ für alle Netzwerkebenen.

Im Juli 2014 (Version Helium) wurde zuverlässige Warteschlangen-Transportsystem RAET (Reliable Asynchronous Event Transport Protocol) hinzugefügt. Es wurde in Zusammenarbeit mit einer Reihe großer Unternehmen entwickelt, um eine Alternative zu ZeroMQ zu bieten und eine Möglichkeit zu schaffen, Saltstack dazu zu bringen, weit über Zehntausende von Servern zu skalieren.

Ende Mai 2011 wurden erste Fortschritte bei der Entwicklung eines zentralen Konfigurationsmanagers erzielt. Dieses Konfigurations-Verwaltungssystem basiert auf dem Speichern aller Konfigurations- oder “Zustands-“Daten in einer leicht verständlichen Datenstruktur. Die experimentelle Funktion war noch im selben Monat verfügbar, wurde jedoch bis zur Veröffentlichung der Version 0.9.3 im November 2011 nicht als stabil angesehen.

Design

Saltstack wurde so konzipiert, dass es hochmodular und leicht erweiterbar ist, um die Anpassung an verschiedene Anwendungen zu erleichtern. Das Moduldesign erstellt Python-Module, die bestimmte Aspekte der verfügbaren Saltstacksysteme behandeln. Diese Module ermöglichen, dass die Interaktionen innerhalb von Saltstack getrennt und an die Anforderungen eines Entwicklers oder Systemadministrators angepasst werden.

Modultypen

Das System verwaltet viele Modultypen, um bestimmte Aktionen zu verwalten. Module können zu jedem System hinzugefügt werden, das dynamische Module unterstützt. Diese Module verwalten das gesamte Remote-Ausführungs- und Statusverwaltungsverhalten. Die Module können in sechs Gruppen unterteilt werden:

Ausführungsmodule

Ausführungsmodule sind der Arbeiter für die Funktionalität von Saltstack. Sie stellen die Funktionen dar, die für die direkte Ausführung von der Remote-Ausführungsmaschine verfügbar sind. Diese Module enthalten die spezifischen plattformübergreifenden Informationen, die von Saltstack zur Verwaltung der Portabilität verwendet werden und bilden den Kern von Funktionen auf Systemebene, die von den Saltstack-Systemen verwendet werden.

Zustandsmodule

Zustandsmodule sind Komponenten, die das Backend für das Konfigurations-Verwaltungssystem bilden. Diese Module führen den Code aus, der zum Erzwingen, Einrichten oder Ändern der Konfiguration eines Zielsystems erforderlich ist. Wie andere Module wird mehr Status verfügbar, wenn sie den Statusmodulen hinzugefügt werden.

Grains

Grains ist ein System zum Erkennen statischer Informationen über ein System und zum Speichern in RAM zum schnellen Sammeln.

Renderer-Module

Renderer-Module werden verwendet, um die an das Saltstack-Verwaltungssystem übergebenen Informationen zu rendern. Das Renderer-System ermöglicht es, die Konfigurations-Verwaltungsdaten in jedem serialisierbaren Format darzustellen.

Returners

Die von Saltstack ausgeführten Fernausführungsaufrufe werden vom aufrufenden System getrennt. Dies ermöglicht, dass die von der Fernausführung generierten Rückgabeinformationen an einen beliebigen Ort zurückgegeben werden. Die Verwaltung von beliebigen Rückgabeorten wird von den Returner-Modulen verwaltet.

Runners

Runners sind sog. Master-Konfortanwendungen, die vom Run-Befehl ausgeführt werden.

Fazit

Die Software begann mit einem Tool für die Remote-Serververwaltung. Mit zunehmender Nutzung hat es eine Reihe erweiterter Funktionen erhalten, darunter einen umfassenderen Mechanismus für die Hostkonfiguration. Dies ist eine relativ neue Funktion, die durch die Komponente Saltstack-States erleichtert wird. Mit der Traktion, die im letzten Moment erreicht wurde, könnte die Unterstützung für weitere Funktionen und Plattformen weiter zunehmen.

Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG