

普段停止中のサーバーを自動起動してレシピ実行後に停止に戻したいです

role や pretasks がうまく使えなかったのでプレイブックごとまとめて

[code]

    - import_playbook: playbooks/start-instances.yml
    - import_playbook: <やりたいレシピ>
    - import_playbook: playbooks/stop-instances.yml
    
[/code]

このように書いてみたのですがレシピが途中で失敗してしまうと停止処理が行われず  
手動で停止しなければいけません

ignore_errors というオプションもタスクレベルにしか使えず  
やりたいレシピの中に書くのはおかしい気がするのですが  
import_playbook の中でエラーが出ても処理を止めない方法ってありますか？

タスクレベルの処理にできないのは start-instances.yml, stop_instances は対象インスタンスの外部(ansible
実行サーバー)から AWS コマンドを叩いて起動するものでレシピ実行ホストが異なるからです

ansible-playbook 2.9.4 です


CC BY-SA 4.0
2020-02-20T09:30:05.307
63206
2020-02-25T02:24:00.840
2020-02-25T02:24:00.840
question
ansible
途中で実行に失敗しても必ず特定タスクを実行したい


[block/rescue](https://docs.ansible.com/ansible/latest/user_guide/playbooks_blocks.html)
が使えると思います。

[code]

    - block:
        - import_playbook: playbooks/start-instances.yml
        - import_playbook: <やりたいレシピ>
    
      rescue:
        - import_playbook: playbooks/stop-instances.yml
    
[/code]

block内の処理がエラーになるとrescue内の処理が実行されます。


CC BY-SA 4.0
2020-02-21T13:19:51.520
63239
2020-02-21T13:19:51.520
32
63206
answer