2017-01-02 6 views
1

私はwith_itemsイテレータを使用してコマンド:brew services stop {{ item }}を実行しています。担当者:changed_whenステートメントでアイテム(with_items)を使用する

エラーを処理するにはchanged_whenを使用し、itemという値を使用します。

command: brew services stop {{ item }} 
    register: stop_services 
    changed_when: 
    - "'Error: Service `{{ item }}` is not started.' not in stop_services.stderr" 
    with_items: 
    - memcached 
    - kafka 

サービスが開始されていない場合、私は

failed: [127.0.0.1] (item=memcached) => {"changed": false, "cmd": ["brew", "services", "stop", "memcached"], "delta": "0:00:00.464519", "end": "2016-12-29 18:02:37.795973", "failed": true, "item": "memcached", "rc": 1, "start": "2016-12-29 18:02:37.331454", "stderr": "Error: Service memcached is not started.", "stdout": "", "stdout_lines": [], "warnings": []}

しかしchanged_when文が無視され、次のエラーを取得します。

itemchanged_whenに注入できますか?

安全なバージョン:2.2

答えて

1

最初に失敗したタスクがあります。 commandモジュールは、コマンドの戻りコードが0以外の場合(あなたのケースでは"rc": 1)、あなたのchanged_whenの条件が考慮されていないため、失敗を報告します。

prevent failingに以下を追加します。

failed_when: false 
+0

あなたはまた 'IGNORE_ERRORS使用することができます。yes'、何かが失敗した場合は、あなたを教えてくれますが、それを無視します。 –

関連する問題