2

如何在依赖角色的依赖列表中指定Ansible角色及其参数,这两者都存储在单独的 Git 存储库中?

考虑以下不正确的示例,其中角色tomcat取决于角色的版本 8 openjdk

# Role tomcat at git+http://source/ansible/roles/tomcat.
# File tomcat/meta/main.yml.
---
dependencies:
  # When it retrieves role tomcat, ansible-galaxy retrieves role openjdk. 
  - src: git+http://source/ansible/roles/openjdk
    version: master

  # ansible-playbook invokes role openjdk, but fails to set openjdk_version.
  - { role: openjdk, openjdk_version: 8 }

指定依赖角色的正确方法是什么openjdk

Ansible Galaxy 版本:

derek@derek-lubuntu:~/Projects/deployer$ ansible-galaxy --version
ansible-galaxy 2.3.0 (devel 947e0f264e) last updated 2016/11/10 11:45:16 (GMT -400)
  lib/ansible/modules/core: (detached HEAD 2584fca0ae) last updated 2016/11/04 12:08:44 (GMT -400)
  lib/ansible/modules/extras: (detached HEAD a1dcbf9ce5) last updated 2016/11/04 12:08:44 (GMT -400)
  config file = /home/derek/Projects/deployer/ansible.cfg
  configured module search path = Default w/o overrides

Ansible 剧本版本:

ansible-playbook 2.3.0 (devel 947e0f264e) last updated 2016/11/10 11:45:16 (GMT -400)
  lib/ansible/modules/core: (detached HEAD 2584fca0ae) last updated 2016/11/04 12:08:44 (GMT -400)
  lib/ansible/modules/extras: (detached HEAD a1dcbf9ce5) last updated 2016/11/04 12:08:44 (GMT -400)
  config file = /home/derek/Projects/deployer/ansible.cfg
  configured module search path = Default w/o overrides
4

1 回答 1

1

由于我找不到openjdk_version作为参数传递给角色的方法openjdk,我改为遵循Andrey Rusanov建议并将变量添加openjdk_versionvars/main.yml角色tomcat

---
openjdk_version: 8

meta/main.yml现在仅包含以下src依赖项openjdk

# From role tomcat at git+http://source/ansible/roles/tomcat.
# File tomcat/meta/main.yml.
---
dependencies:
  - src: git+http://source/ansible/roles/openjdk
    version: master
于 2016-11-11T17:03:17.997 回答