Eigenschaften

Ein Salt-Minion kennt bestimmte Informationen über das System, auf dem er läuft, und hält diese in sogenannten Grains (engl.: Körner) vor. Diese enthalten unter anderem Angaben zum Betriebssystem, zur Netzwerkkonfiguration, zur Hardware oder zum BIOS. Der Befehl sudo salt "*" grains.ls liefert eine Liste sämtlicher Bezeichnungen der Grains auf allen Minions, während sudo salt "*" grains.items die Werte dazu ausgibt (Abbildung 4).

Abbildung 4: Salt erkennt von Haus aus zahlreiche wichtige Eigenschaften eines Systems, auf dem ein passender Minion läuft.

Oft benötigen Sie jedoch nur eine bestimmte Information und fragen dann lediglich einzelne Grains ab. Listing 5 demonstriert das beispielsweise für das Betriebssystem. Zudem lassen sich Minions anhand von Grains adressieren, was es ermöglicht, das Minion-Targeting um viele relevante Bedingungen zu erweitern. Die einfachste Variante wählt Minions auf Grundlage eines Grains aus, zum Beispiel der CPU-Architektur (Listing 6, erste Zeile).

Listing 5

$ sudo salt "*" grains.item os
deb7:
  os: Debian
linux-x3b4.site:
  os: openSUSE
fedora23.fritz.box:
  os: Fedora

Listing 6

$ sudo salt -G "cpuarch:x86_64" test.ping
$ sudo salt -C "mem_total:984 and not linux-x3b4.site" test.ping

Noch mächtiger sind Grains allerdings, wenn Sie sie beim Targeting mit anderen Kriterien verbinden, wie das Beispiel aus der zweiten Zeile von Listing 6 zeigt: Es adressiert ausschließlich Minions, die über 984 MByte Arbeitsspeicher verfügen und nicht denselben Namen tragen wie unser OpenSuse-Testsystem.

Standardmäßig definiert Salt von Haus aus einige wichtige Grains. In vielen Fällen ist es aber sinnvoll, diesen Definitionen eigene hinzuzufügen, etwa Angaben über den Standort oder die Rolle(n) des Rechners. Saltstack unterstützt Sie bei diesem Vorhaben mit einer umfangreichen Dokumentation [8].

Vielfalt an Modulen

Zwar bietet Saltstack die Möglichkeit, direkt Shell-Kommandos an die Minions abzusetzen, doch in der Praxis hat es sich bewährt, auf eines der vorgefertigten Module zurückzugreifen. Diese decken eine Vielzahl an Szenarien ab, angefangen vom Verwalten der Benutzer oder Pakete bis hin zur Interaktion mit Datenbanken. Alle Module bieten auf die unterschiedlichen Plattformen zugeschnittene Kommandos und Möglichkeiten, um gegebenenfalls Ausgaben richtig zu verarbeiten. Daher sollten Sie Module grundsätzlich reinen Shell-Kommandos vorziehen, solange sie die gewünschten Funktionen bereitstellen.

Eine vollständige Liste aller verfügbaren Salt-Module finden Sie online [9]. Beachten Sie, dass abhängig von der eingesetzten Salt-Version unterschiedlich viele Module bereitstehen. Nur die neueste Version kommt mit sämtlichen Modulen zurecht. Besonders ambitionierte Benutzer finden in der Dokumentation Hinweise, um eigene Module zu schreiben und einzubinden [10]. Neben gewöhnlichen Modulen kennt Salt auch virtuelle Module. Bei deren Einsatz stellen Sie keinen Unterschied fest, unter der Haube rufen solche Erweiterungen jedoch weitere Module auf, die dann jeweils die gewünschte Aufgabe erfüllen.

Ein solches virtuelles Modul ist beispielsweise das Paketmodul pkg: Ein Blick in die offizielle Dokumentation [11] zeigt, dass es Kommandos an gewöhnliche Module durchreicht. Letztere wählt Salt anhand der Plattform auf dem Zielsystem aus. Übrigens: Sobald Sie beginnen, sich mit einem Modul zu beschäftigen, ist es meist sinnvoll, sich anhand der offiziellen Dokumentation über alle Funktionen der Erweiterung zu informieren.

Pkg beinhaltet zahlreiche wichtige Aufrufe: So bietet es etwa die Möglichkeit, Pakete plattformübergreifend zu installieren oder zu entfernen, die Paketquellen zu verwalten und anstehende Updates zu erledigen. Für Systeme mit dem Paketmanager Apt findet sich online eine vollständige Übersicht über die Kommandos [12].

Die Aufrufe aus diesem Untermodul gleichen übrigens weitgehend jenen der anderen Module, die unter der Haube mit Yum oder Zypper arbeiten. Um plattformübergreifend abzufragen, ob ein bestimmtes Paket auf den Systemen installiert ist, fragen Sie einfach die Version ab (Listing 7). Um ein Paket nachzuinstallieren genügt der Aufruf von pkg.install (Listing 8). Der Ausgabe entnehmen Sie, ob das Paket bereits eingerichtet war oder gegebenenfalls aktualisiert beziehungsweise nachinstalliert wurde. Antwortet ein System gar nicht, war das Paket bereits in der aktuellen Version vorhanden. Wünschen Sie das explizite Aktualisieren der Paketlisten (apt-get update), geben Sie vor dem Namen des Pakets einfach die Option refresh=True an.

Listing 7

$ sudo salt "*" pkg.version grep
deb7:
  2.12-2
linux-x3b4.site:
  2.20-2.4.1
fedora23.fritz.box:
  2.21-7

Listing 8

$ sudo salt "*" pkg.install refresh=True unzip
linux-x3b4.site:
        ----------
fedora23.fritz.box:
        ----------
deb7:
        ----------
        unzip:
            ----------
            new:
                6.0-8+deb7u5
            old:
                6.0-8+deb7u4

Ähnlich simpel wie das Verwalten der Pakete läuft unter Salt das Bearbeiten von Dateien: Über das File-Modul [13] fragen Sie nicht nur Metadaten zu Dateien ab (etwa die aktuellen Linux-Rechte, den Eigentümer, die Dateigröße und einige mehr), sondern können Files auch löschen, ergänzen oder mittels regulärer Ausdrücke manipulieren. Als sehr nützlich erweist sich das Kommando file.append, mit dem Sie eine oder mehrere Zeilen an die Datei anhängen. Mittels file.comment und file.comment_line kommentieren Sie Teile einer Datei aus, mit file.rename ändern Sie deren Namen.

TIPP

In der Online-Dokumentation finden Sie viele Beispiele [13], die zeigen, wie Sie Dateien auf mehreren Systemen gleichzeitig manipulieren.

Listing 9 zeigt, wie Sie die Datei /etc/motd um einen Eintrag erweitern. Wenn Sie Ihre Kenntnisse mit Salt aufbauen wollen, böte es sich an, als Experiment die Änderung im Anschluss rückgängig zu machen, indem Sie die frisch hinzugefügte Zeile erst mittels File-Modul kommentieren und dann mit einem anderen Aufruf löschen.

Listing 9

$ sudo salt "*" file.append /etc/motd "Dieses System wird mit Salt verwaltet."
linux-x3b4.site:
  Wrote 1 lines to "/etc/motd"
deb7:
  Wrote 1 lines to "/etc/motd"
fedora23.fritz.box:
  Wrote 1 lines to "/etc/motd"

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Salt steuert entfernte Rechner

    Salt, eine neue Software zum Ausführen von Befehlen auf entfernten Rechnern, tritt in Version 0.6.0 erstmals ans Licht der Öffentlichkeit.
  • Qubes R3.1 veröffentlicht
    Die Distribution Qubes erhöht die Sicherheit, indem sie Anwendungen in einzelne virtuelle Maschinen sperrt. Jetzt haben die Entwickler die Version R3.1 freigegeben, die zusätzliche Hardwarekomponenten unterstützt und für Anwender ein paar interessante Neuerungen bereithält.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...