0
私は、私は "シェル"または "コマンド"モジュールを使用して、ほとんどのタスクを実行しています。だから、シェルとモジュールと脚本の冪等を行うために、私はこのような脚本を修正していますが...フェイルブックを最適化してシェルモジュールと等価にする
- name: Task1
shell: 'source /etc/nova/openrc && heat stack-show myne01 | tee stack_show.log'
args:
creates: stack_show.log
register: list
- debug: var=list.stdout_lines
ignore_errors: yes
- name: Delete stack-show.log
file: path=/home/wrsroot/stack_show.log state=absent
when: "list.rc != 0"
- name: Failed the stack
shell: "echo 'stack is failed'"
when: "list.rc != 0"
failed_when: "list.rc != 0"
ここで流れは次のとおりです。
1)表示スタックの状態
2)スタックの実行が失敗した場合エラーを無視して "stack_show.log"ファイルを削除します。したがって、再実行時に、アニプルはこのタスクをスキップしません。
3)スタックの実行が失敗した場合は、タスクに失敗しました。
この方法をお勧めしますか?
偶像性をプレイブックに追加するには、各「シェル」モジュールに9行のコードを追加します。私のプレイブックは非常に大きくなっています。