sumetho - Fotolia

Masterless-Mode: Konfigurations-Verwaltung von Salt Minions ohne Master

Typischerweise wird SaltStack in einer Master-/Minion-Architektur aufgesetzt. Manchmal empfiehlt sich aber eine Salt-Konfiguration ohne Master.

Die Konfigurationsverwaltung mit Salt beinhaltet meist eine Konfiguration aus einem oder mehrerer Salt Master in Verbindung mit vielen zu verwaltenden Salt Minions auf unterschiedlichen virtuellen Maschinen, die Konfigurationseinstellungen erhalten und auch zurück zum Master übermitteln. Als Minion wird dabei der Agent bezeichnet, der auf dem verwalteten Computer ausgeführt wird, während der Master die gesamte Konfigurationsverwaltung koordiniert. Die meisten Bereitstellungen des auf Python basierenden Configuration-Management-Tools folgen diesem Design – aber eben nicht alle.

Salt kann im Masterless-Modus auch auf einer einzelnen Maschine betrieben werden, wofür es einige gute Gründe gibt. Für eine Salt-Konfiguration im Masterless-Modus spricht beispielsweise eine Situation, in der ein Server den Master nicht kontaktieren kann, Administratoren aber die Serverkonfiguration trotzdem automatisieren wollen.

Der Kern des Konfigurations-Managements mit Salt ist die YAML-Datei SaLT State (SLS), mit der sich die Konfiguration einer virtuellen Maschine definieren lässt. Sofern diese Datei vorhanden ist, kann ein Salt Minion auch im Masterless-Modus die SLS-Datei ausführen und die Konfigurationsänderungen anwenden, ohne hierfür den Master kontaktieren zu müssen. Administratoren können dieses Szenario verwenden, um jeden beliebigen Status zu konfigurieren, selbst das Aufsetzen eines neuen Masters ist so möglich.

Bootstrap-Skript für Minion-Server

Um Salt im Masterless-Modus zu betreiben, müssten zunächst die Salt-Komponenten auf dem zu verwaltenden Server installiert werden. Die SaltStack-Webseite bietet hierfür ein Bootstrap-Skript:

curl -L https://bootstrap.saltstack.com -o bootstrap_salt.sh sudo sh bootstrap_salt.sh

Nach dem Bootstrapping eines Nodes muss dem Node noch mitgeteilt werden, dass er nach einem Master suchen soll. Hierfür wird in der Konfigurationsdatei minion.conf der Parameter file_client auf den Wert local gesetzt: file_client: local. Als nächstes wird ein State Tree verwendet, um den eigentlichen Konfigurationsprozess zu starten. Ein State Tree definiert die anfallenden Aufgaben. SLS-Dateien können für beliebige Aufgaben eingesetzt werden, einschließlich der Paket-Installation, Dateiänderungen oder dem Anlegen neuer Anwender. In diesem Beispiel definieren wir einen State Tree zum Installieren eines Webservers.

Für einen gültigen State Tree werden mindestens zwei SLS-Dateien benötigt. Dieses Beispiel verwendet die Dateien /srv/salt/top.sls und /srv/salt/webserver.sls. Zudem gibt es auch immer die Datei top.sls, die als Startpunkt dient und generische Anweisungen für alle anfallenden Aufgaben des Salt Minion enthält. Mindestens eine SLS-Datei bietet auch immer detaillierte Informationen über die anderen Zustände. In diesem Beispiel definiert die Datei webserver.sls, was während der Konfiguration tatsächlich passieren wird, und wird daher von der top.sls referenziert.

Die Datei /srv/salt/top.sls ist eine YAML-Datei, die den folgenden Inhalt haben kann:

base:

  '*':

   - webserver

Die Datei /srv/salt/webserver.sls wiederum ist ebenfalls eine YAML-basierte Datei und könnte folgenden Inhalt haben:

httpd:

  pkg:

   - installed

Die erste Zeile der webserver.sls bezieht sich auf den tatsächlichen Namen des Paketes, das installiert werden soll. Dieser Paketname funktioniert mit CentOS, könnte auf anderen Plattformen aber auch davon abweichen. Dieses Beispiel verwendet ein pkg-Statement zur Installation des Softwarepakets. Alternativ dazu könnten Administratoren auch SLS-Dateien zur Bereitstellung beliebiger Konfigurationen eines per Salt verwalteten Nodes verwenden.

Nach der Definition der Inhalte für die SLS-Dateien können diese über den Befehl salt-call angewendet werden: salt-call --local state.apply. Die Option --local gibt dabei an, dass der Minion für das Ausführen des Befehls keinen Master kontaktieren muss.

Mit diesen einfachen Schritten können Konfigurationszustände auch ohne Master im Masterless-Modus definiert und angewendet werden. Die hierbei wichtige Komponente ist die State-Tree-Datei. Auch wenn die Konfigurationsverwaltung per Salt im Masterless-Modus weniger häufig anzutreffen ist, ist sie doch eine nützliche Funktion für alle Administratoren, die ihr Infrastruktur-Provisioning so weit wie möglich automatisieren wollen.

Weitere Artikel zu Salt:

Überblick über Komponenten und Lizenzierung von SaltStack

Die wichtigsten Befehle zum Minion-Management

Konfigurations-Management mit Salt Minions

SaltStack als Management-Tool zur vSphere-Verwaltung

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Artikel wurde zuletzt im April 2017 aktualisiert

Pro+

Premium-Inhalte

Weitere Pro+ Premium-Inhalte und andere Mitglieder-Angebote, finden Sie hier.

Erfahren Sie mehr über Data-Center-Systems-Management

Diskussion starten

Schicken Sie mir eine Nachricht bei Kommentaren anderer Mitglieder.

Mit dem Absenden dieser Daten erklären Sie sich bereit, E-Mails von TechTarget und seinen Partnern zu erhalten. Wenn Ihr Wohnsitz außerhalb der Vereinigten Staaten ist, geben Sie uns hiermit Ihre Erlaubnis, Ihre persönlichen Daten zu übertragen und in den Vereinigten Staaten zu verarbeiten. Datenschutz

Bitte erstellen Sie einen Usernamen, um einen Kommentar abzugeben.

- GOOGLE-ANZEIGEN

SearchSecurity.de

SearchStorage.de

SearchNetworking.de

SearchEnterpriseSoftware.de

Close