Salt API

Salt per HTTP fernsteuern

API installieren

yum install salt-api      # RedHat,CentOS
apt-get install salt-api  # Debian, Ubuntu

Konfiguration

Um die API zu aktivieren, fügen Sie die folgenden Zeilen in eine neue Datei /etc/salt/master.d/api.conf ein:

/etc/salt/master.d/api.conf
external_auth:
  pam:
    salt-api:
      - .*
      - '@wheel'
      - '@runner'

rest_cherrypy:
  host: 127.0.0.1 # omit to listen on all IPs
  port: 8000
  disable_ssl: true
  debug: true
  
netapi_enable_clients: [local]

Starten Sie nach der Änderung der Konfiguration den Salt-Master und die API neu.

Es können weitreichende Einschränkungen pro User konfiguriert werden, um nicht alle Funktionen und alle Minions über die API verfügbar zu machen. Siehe offizielle Dokumentation.

Einen Benutzer anlegen

Zugriffe auf Key-Verwaltung beschränken

API Zugriffe auf Minions und Funktionen beschränken

Testen

Erster Test

Anmelden und API Token holen

Eine Anfrage stellen, z.B. salt '*' test.ping über die API auslösen.

Als Rückgabeformat kann auch JSON gewählt werden.

API Anfragen können auch ohne Token an den /run Endpunkt gesendet werden. Benutzername, Password und Authentifizierungsmethode müssen dann im Body enthalten sein.

Ein simples Python-Beispiel

State.apply per API durchführen

Asynchrone Requests durchführen

Egal, ob Sie einen Salt »Befehl« über die Kommandozeile oder die API durchführen, ja nach Anzahl der adressierten Minions und der verwendeten Module oder States kann der Lauf sehr lange dauern. Wenn Sie eigene Applikationen auf Basis der API entwickeln, müssen HTTP Clients u.U. sehr lange auf eine Antwort warten. Ein asynchrones Ausführen ist oft ratsamer. Die API beendet die HTTP Anfrage sofort und gibt eine Job-ID zurück. Die Jobs laufen dann im Hintergrund. Anschließend kann man periodisch im Job-Cache nachschauen, welcher Minion den Job bereits abgearbeitet hat und mit welchem Ergebnis.

Wenn Sie einen MySQL-Jobcache aktiviert haben, können Sie das Ergebnis eines asynchronen Jobs auch aus der Datenbank lesen.

Pillars per API schreiben

Einen neuen Minion registrieren

Prüfen, ob für einen Minion schon Zertifikate generiert wurden:

Wenn kein Zertifikat vorhanden, ein neues generieren und downloaden. Der Download besteht aus einem Tar-File, in welchem minion-Key und Minion-Zerifikat enthalten sind.

Beispiel Systeme beim Hochfahren automatisch registrieren

Achten Sie darauf, dass die Salt-API im Netzwerk lauscht und nicht nur auf localhost.

Passen Sie ggf. die Datei /etc/salt/master.d/api.conf an und starten Sie die API mit service salt-api restart neu.

Link zur offiziellen Dokumentation der Salt-API.

Last updated