10
A
回答
7
當涉及到這種事情時,Ansible文檔存在限制 - 如果有官方最佳實踐,我還沒有遇到過。
讓您的劇本保持可讀性和可讀性的一個好方法是針對主機運行多個不同的播放,並在每個播放器中使用不同的參數調用角色。
role: foo, var: blah
語法顯示了一點點this description的語法是一種傳遞參數的好方法,並且一目瞭然地讓事情一目瞭然。例如:
- name: Run the docker role with docker_container_state=foo
hosts: docker-host
roles:
- { role: docker_container, docker_container_state: foo }
- name: Run the docker role with docker_container_state=bar
hosts: docker-host
roles:
- { role: docker_container, docker_container_state: bar }
5
我通常使用includes運行的作用,部分多次,如果我有一個變量的體面的佈局(或整個角色!)。請參閱下面的示例劇本,角色apply_state
其中roles/apply_state/tasks
文件夾中有print_state.yml
。訣竅是通過包含內容的項目,之後它是一塊蛋糕。
playbook.yml
- hosts: localhost
roles:
- { role: apply_state, states: [ state_one, state_two, state_three ] }
角色/ apply_state /任務/ main.yml
- name: print all states!
include: print_state.yml state="{{ item }}"
with_items: "{{ states }}"
角色/ apply_state /任務/ print_state.yml
- name: echo state
debug: msg="{{ state }}"
請參閱下面的ansible-playbook -i localhost, playbook.yml
的輸出:
PLAY [localhost] ***************************************************************
TASK [setup] *******************************************************************
ok: [localhost]
TASK [apply_state : print all states!] *****************************************
included: /home/user/roles/apply_state/tasks/print_state.yml for localhost
included: /home/user/roles/apply_state/tasks/print_state.yml for localhost
included: /home/user/roles/apply_state/tasks/print_state.yml for localhost
TASK [apply_state : echo state] ************************************************
ok: [localhost] => {
"msg": "state_one"
}
TASK [apply_state : echo state] ************************************************
ok: [localhost] => {
"msg": "state_two"
}
TASK [apply_state : echo state] ************************************************
ok: [localhost] => {
"msg": "state_three"
}
PLAY RECAP *********************************************************************
localhost : ok=7 changed=0 unreachable=0 failed=0
相關問題
- 1. Ansible劇本不運行從角色
- 2. 用不同的參數多次運行python函數
- 3. Ansible運行具有不同的var文件多次包含
- 4. 多次使用不同的參數
- 5. 使用不同的參數多次運行同樣的方法在C#
- 6. 如何多次使用不同的參數運行相同的廚師配方
- 7. 使用不同的參數多次執行jUnit runner運行測試類
- 8. 使用不同參數多次滾動
- 9. 如何使用不同的用戶角色多次運行相同的BDD功能
- 10. 針對不同的參數多次運行終端命令
- 11. Ansible在不同的主機上執行每個角色
- 12. 使用不同的輸入參數在fortran中多次運行代碼
- 13. 我怎樣才能用一個劇本中的不同變量多次執行一個Ansible角色?
- 14. TestNG Xml文件:我想用不同的參數多次運行同一個類
- 15. 多次使用相同的參數
- 16. 使用不同參數多次執行SQL查詢
- 17. Ansible playbook>如何執行與不同主機不同的角色
- 18. hudson和jenkins參數化觸發器插件 - 使用不同參數多次運行同一作業
- 19. 當我更改參數值時,SSRS運行數據集多次
- 20. 使用不同的數據多次運行相同的JUnit測試用例
- 21. 用不同的參數值多次運行python腳本的最佳方式
- 22. 分享Ansible角色
- 23. 執行多個測試依次用不同的參數TestNG的
- 24. 使用不同參數運行同一程序的多個實例的PBS
- 25. 使用eclipse使用不同參數運行應用程序的多個實例
- 26. Ansible:將IAM角色應用於ec2機器,同時部署使用可行
- 27. 針對不同用戶角色的不同視圖集
- 28. 使用PowerShell依次運行運行時參數調用多個sql
- 29. 從不同位置多次運行Firefox
- 30. SQL計數多行出現次數不同,按多行不同