2015-01-13 9 views
7

Ich versuche, einen Befehl für die Bereitstellung über Saltstack aufzurufen. Wenn der Befehl fehlschlägt, bekomme ich den Status fehlgeschlagen, und ich will das nicht (die Rückcodierung des Befehls spielt keine Rolle).Saltstack: Ergebnis von cmd.run ignorieren

Zur Zeit habe ich die folgende Abhilfe:

Run something: 
    cmd.run: 
    - name: command_which_can_fail || true 

ist es eine Möglichkeit, solchen Zustand ignoriert retcode mit Salz Funktionen zu machen? oder kann ich diesen Zustand aus den Logs ausschließen?

Antwort

9

Verwendung check_cmd:

fails: 
    cmd.run: 
    - name: /bin/false 

succeeds: 
    cmd.run: 
    - name: /bin/false 
    - check_cmd: 
     - /bin/true 

Ausgang:

local: 
---------- 
      ID: fails 
    Function: cmd.run 
     Name: /bin/false 
     Result: False 
    Comment: Command "/bin/false" run 
    Started: 16:04:40.189840 
    Duration: 7.347 ms 
    Changes: 
       ---------- 
       pid: 
        4021 
       retcode: 
        1 
       stderr: 

       stdout: 

---------- 
      ID: succeeds 
    Function: cmd.run 
     Name: /bin/false 
     Result: True 
    Comment: check_cmd determined the state succeeded 
    Started: 16:04:40.197672 
    Duration: 13.293 ms 
    Changes: 
       ---------- 
       pid: 
        4022 
       retcode: 
        1 
       stderr: 

       stdout: 


Summary 
------------ 
Succeeded: 1 (changed=2) 
Failed: 1 
------------ 
Total states run:  2 
+0

check_cmd existiert nicht mehr auf 2017.7.0 – Dereckson

+1

@Dereckson Nein, ist es immer noch da? https://docs.saltstack.com/en/2017.7/ref/states/requisites.html#check-cmd Ich habe das obige Snippet mit 2017.7.2 erneut getestet und es funktioniert immer noch wie erwartet. – oeuftete

0

Salz geht davon aus, dass, wann immer Sie einen "cmd" Zustand ausgeführt werden, dass etwas auf dem System geändert werden wird. Also möchte es dich warnen, wenn dein cmd fehlschlägt.

Ich fürchte, es gibt keine eingebaute Möglichkeit, bestimmte Zustandsfehler zu diesem Zeitpunkt zu ignorieren. Sie können an https://github.com/saltstack/salt/issues

1

eine Feature-Anfrage stellen Wenn Sie nicht egal, was das Ergebnis des Befehls ist, können Sie verwenden:

Run something: 
cmd.run: 
    - name: command_which_can_fail; exit 0 

Dies wurde 2017.7.0 in Salt getestet, aber würde wahrscheinlich funktionieren in frühere Versionen.