前提・実現したいこと
Ansible のレシピのリファクタリングを行っていて
機能ごとに Role に分割しようとしています
発生している問題・エラーメッセージ
role3 が role1, role2 に依存
role2 が role1 に依存
のような dependencies を書いて role3 を実行すると role1 が2回実行されてしまいます
複数から依存された role も1度しか実行しないようにするにはどうすればいいでしょうか
task レベルのオプションには run_once: true というのがあるみたいですが
task 内のコードが結構多くて自分が書いたわけではないのでできれば触りたくないです
role レベルで設定する方法はありませんか?
該当のソースコード
playbook.yml
yml
1- hosts: localhost 2 tasks: 3 - import_role: 4 name: role3
roles/role2/meta/main.yml
yml
1dependencies: 2 - role: role1
roles/role3/meta/main.yml
yml
1dependencies: 2 - role: role1 3 - role: role2
tasks 内は本質的ではないので省略します
試したこと
ansible-playbook playbook.yml
role1 が2度実行される
PLAY [localhost] ********************************************************************************************************************************************************************** TASK [role1 : task1] ****************************************************************************************************************************************************************** changed: [localhost] TASK [role1 : task1] ****************************************************************************************************************************************************************** changed: [localhost] TASK [role2 : task2] ****************************************************************************************************************************************************************** changed: [localhost] TASK [role3 : task3] ****************************************************************************************************************************************************************** changed: [localhost] PLAY RECAP **************************************************************************************************************************************************************************** localhost : ok=4 changed=4 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
補足情報(FW/ツールのバージョンなど)
ansible 2.9.4

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。