質問: 普段停止中のサーバーを自動起動してレシピ実行後に停止に戻したいです role や pretasks がうまく使えなかったのでプレイブックごとまとめて ``` - import_playbook: playbooks/start-instances.yml - import_playbook: <やりたいレシピ> - import_playbook: playbooks/stop-instances.yml ``` このように書いてみたのですがレシピが途中で失敗してしまうと停止処理が行われず 手動で停止しなければいけません ignore_errors というオプションもタスクレベルにしか使えず やりたいレシピの中に書くのはおかしい気がするのですが import_playbook の中でエラーが出ても処理を止めない方法ってありますか? タスクレベルの処理にできないのは start-instances.yml, stop_instances は対象インスタンスの外部(ansible 実行サーバー)から AWS コマンドを叩いて起動するものでレシピ実行ホストが異なるからです ansible-playbook 2.9.4 です
回答: block/rescue が使えると思います。 ``` - block: - import_playbook: playbooks/start-instances.yml - import_playbook: <やりたいレシピ> rescue: - import_playbook: playbooks/stop-instances.yml ``` block内の処理がエラーになるとrescue内の処理が実行されます。