SaltStack: Ruft einen einzelnen Status einer sls-Datei auf

12

Ich kann keinen einzelnen Status einer sls-Datei aufrufen.

Ganze sls-Datei funktioniert

Das funktioniert:

salt-ssh w123 state.sls monitoring

Das funktioniert:

salt-ssh w123 state.show_sls monitoring

Ein Punkt der obigen Ausgabe:

monitoring_packages:
    ----------
    __env__:
        base
    __sls__:
        monitoring.packages
    pkg:
        |_
          ----------
          pkgs:
              - python-psutil
        - installed
        |_
          ----------
          order:
              10000

Was ich versucht habe

Jetzt möchte ich nur aufrufen monitoring_packages, nicht die ganze sls-Datei:

Schlägt fehl:

salt:/srv # salt-ssh w123 state.sls_id monitoring_packages  monitoring
w123:
    Data failed to compile:
----------
    No matching sls found for 'monitoring' in env 'base'

Schlägt fehl:

salt:/srv # salt-ssh w123 state.single monitoring.monitoring_packages
w123:
    TypeError encountered executing state.single: single() takes at least 2 arguments (1 given)

Frage

Wie rufe ich meinen Bundesstaat an monitoring_packages?

Ausführung

salt:/srv # salt-ssh --version
salt-ssh 2015.8.3 (Beryllium)
guettli
quelle

Antworten:

11

Ich bin auf diesen Beitrag gestoßen, als ich auch versucht habe, herauszufinden, wie dies mit regulären Salt Calls (dh nicht Salt-SSH ) gemacht werden kann.

Wenn Sie die folgende SLS-Datei (foo.sls) haben:

bar:
   file.managed:
       - source: salt://some/file

Sie können den folgenden Befehl ausführen, um nur diesen Eintrag in der Statusdatei auszuführen:

salt '*' state.sls_id bar foo

Und das wusste ich auch nicht. Die Antwort fand ich in einem Kommentar in einer Google-Gruppendiskussion, der auf ein Commit hier hinwies .

Mike
quelle
2

Dies scheint ein bereits bekanntes Problem zu sein: https://github.com/saltstack/salt/issues/29253

Es funktioniert außerhalb von Salt-SSH. Sieht aus wie eine Funktion, die diesem Wrapper hinzugefügt werden muss.

Ch3LL
quelle
0
salt '*target*' state.sls  monitoring.<sls_file_name> <task name> -l debug

Beispiel: Angenommen, ich habe einen Status für elasticserach mit einer sls-Datei namens settings.sls und in dieser Datei habe ich die Aufgabe restart_elastic_search. Jetzt möchte ich diese spezielle Aufgabe aufrufen.

salt '*elastic*' state.sls  elasticsearch.settings restart_elastic_search -l debug
Vaibhav Jain
quelle