2015-01-13 6 views
7

私はSaltstack経由でプロビジョニングのコマンドを呼び出そうとしています。コマンドが失敗した場合、私は状態に失敗し、私はそれを望んでいません(コマンドのretcodeは関係ありません)。Saltstack:cmd.runの結果を無視する

現在、私は次の回避策を持っている:

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

は、このような状態は、塩の機能を使用してリターンコードを無視させる方法はありますか?あるいは、この状態をログから除外できますか?

答えて

9

使用check_cmd

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

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

出力:

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はもう存在しません2017.7.0 – Dereckson

+1

@Derecksonいいえ、それはまだありますか? https://docs.saltstack.com/en/2017.7/ref/states/requisites.html#check-cmd上記のスニペットを2017.7.2で再テストしたところ、期待どおりに機能しています。 – oeuftete

0

塩は、いつでもあなたは何かがあなたのシステムに変更されようとしていることを、 "CMD" 状態を実行していることを前提としています。したがって、あなたのcmdが失敗したときに警告を出したいと思っています。

現時点では、特定の状態の失敗を無視する組み込みの方法はありません。あなたは、コマンドの結果が何であるかを気にしない場合は、あなたが使用することができ、https://github.com/saltstack/salt/issues

1

で機能要求を行うことができます。

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

これを塩2017.7.0で試験したが、おそらくで働くだろう以前のバージョン。

関連する問題