Ansible
如何在單個 ansible playbook 中為不同的主機執行不同的角色?
我有 3 個 ansible 劇本。
my_ansible ├── hosts ├── play1.yaml ├── play2.yaml ├── play3.yaml └── roles ├── role1 ├── role2 └── role3
主機
[play1] host1 [play2] host2 [play3] host3
現在,當我跑步時,我
play3
想繼續跑步play2(role2)
。host2``play1(role1)``host1
我檢查了role-dependency,但這適用於同一主機,這意味著,如果我添加for and
role-dependency
,那麼這兩個角色將針對.role3``role1``role2``host3
我想確保,只
play1
執行,只執行,只執行。host1``play2``host2``play3``host3
我試圖找到
playbook
依賴關係,但還沒有運氣。如果有更好的方法來解決這個問題,那麼我也準備好採用這種方法。
我想實現這一點的最簡單方法是創建一個主劇本並在那裡定義劇本的順序。
可以在主劇本中包含劇本。
$$ … $$列出的每個劇本中的劇本和任務將按照它們列出的順序執行,就像它們在這裡直接定義一樣。
請參閱有關 playbook 重用的 Ansible 文件,包括
為了實現這一目標,
play3
我們play2
只play1
需要像這樣定義一個主劇本:--- - import_playbook: play3.yml - import_playbook: play2.yml - import_playbook: play1.yml