2
我正在運行Ansible 1.9.3,並且無法從Ansible文檔中獲取role dependency wheel/tire example工作。Ansible角色取決於未運行多次的其他角色
$ ansible --version
ansible 1.9.3
configured module search path = None
這裏是我的文件:
$ find ./ -type f | while read f; do printf "# %s\n" "$f"; cat "$f"; printf "\n\n"; done
# ./inventory
[webservers]
example.com
# ./roles/app/meta/main.yml
---
dependencies:
- { role: wheel, n: 1 }
- { role: wheel, n: 2 }
- { role: wheel, n: 3 }
- { role: wheel, n: 4 }
# ./roles/tire/tasks/main.yml
- name: "tire {{ n }}"
command: "echo tire {{ n }}"
# ./roles/wheel/meta/main.yml
---
allow_duplicates: yes
dependencies:
- { role: tire }
# ./roles/wheel/tasks/main.yml
- name: "wheel {{ n }}"
command: "echo wheel {{ n }}"
# ./site.yml
---
- include: webservers.yml
# ./webservers.yml
---
- hosts: webservers
roles:
- role: app
所以app
作用依賴於wheel
角色的四個實例,而這又取決於tire
作用。
然而,運行劇本只顯示一個執行tire
任務:
$ ansible-playbook -v -i inventory site.yml
PLAY [webservers] *************************************************************
GATHERING FACTS ***************************************************************
ok: [example.com]
TASK: [tire | tire 1] *********************************************************
changed: [example.com] => {"changed": true, "cmd": ["echo", "tire", "1"], "delta": "0:00:00.004721", "end": "2015-09-29 16:55:27.075745", "rc": 0, "start": "2015-09-29 16:55:27.071024", "stderr": "", "stdout": "tire 1", "warnings": []}
TASK: [wheel | wheel 1] *******************************************************
changed: [example.com] => {"changed": true, "cmd": ["echo", "wheel", "1"], "delta": "0:00:00.004355", "end": "2015-09-29 16:55:27.806182", "rc": 0, "start": "2015-09-29 16:55:27.801827", "stderr": "", "stdout": "wheel 1", "warnings": []}
TASK: [wheel | wheel 2] *******************************************************
changed: [example.com] => {"changed": true, "cmd": ["echo", "wheel", "2"], "delta": "0:00:00.005012", "end": "2015-09-29 16:55:28.539339", "rc": 0, "start": "2015-09-29 16:55:28.534327", "stderr": "", "stdout": "wheel 2", "warnings": []}
TASK: [wheel | wheel 3] *******************************************************
changed: [example.com] => {"changed": true, "cmd": ["echo", "wheel", "3"], "delta": "0:00:00.003573", "end": "2015-09-29 16:55:29.259193", "rc": 0, "start": "2015-09-29 16:55:29.255620", "stderr": "", "stdout": "wheel 3", "warnings": []}
TASK: [wheel | wheel 4] *******************************************************
changed: [example.com] => {"changed": true, "cmd": ["echo", "wheel", "4"], "delta": "0:00:00.003541", "end": "2015-09-29 16:55:29.981742", "rc": 0, "start": "2015-09-29 16:55:29.978201", "stderr": "", "stdout": "wheel 4", "warnings": []}
PLAY RECAP ********************************************************************
example.com : ok=6 changed=5 unreachable=0 failed=0
我已經在這兩個meta/main.yml
文件試過allow_duplicates: yes|no
各種組合,但每次都得到相同的結果。目標是執行wheel
和tire
任務的四次執行,其中n
等於1,2,3,4。
感謝您的鏈接。由於不同的bug,我停止使用2.0alpha,並切換回1.9.3,但也許我會再次測試它。我多少放棄嘗試使用參數化的角色依賴關係。相反,我使用模板來生成靜態角色,其中包括角色所需的所有任務。 – Patrick