比方說,我有兩組主機在我的結構中有類似的需求,但它們並不共享所有安裝的相同軟件包。像這樣:如何組織Ansible角色?
發生器(主機組)的需要:
- 轉速甲
- 轉速乙
- 轉速Ç
執行人(另一個主機組)的需要:
- rpm A
- rpm B
我該如何組織我的Ansible角色?這樣做是有方法之一:
generators-role
- main.yml
- package install
- rpm A
- rpm B
- rpm C
executors-role
- main.yml
- package install
- rpm A
- rpm B
但問題是,如果我需要改變對帕茨卡安裝的東西,我必須改變它在兩個地方。
packages1-role
- main.yml
- package install
- rpm A
- rpm B
packages2-role
- main.yml
- package install
- rpm C
然後:我喜歡的東西去
generators-playbook
- roles:
- packages1-role
- packages2-role
executors-playbook
- roles:
- packages2-role
但在這種情況下,我真的需要有一個強有力的理由組RPM超越「他們在同一組主機屬於」。而且,我仍然會遇到與第一個例子相同的問題。
我也考慮過使用基於變量傳遞給角色的標籤或條件,但這看起來有點不可靠,或者至少這是我從Ansible文檔中理解的。
那麼,什麼是最好的方法來做到這一點的任何提示?
謝謝!
請參閱最佳實踐(http://docs.ansible.com/ansible/playbooks_best_practices.html) – BMW