Ho un problema nell'esecuzione di un playbook Ansible con un set di ruoli privati (ovvero ruoli Ansible in un repository git privato).Playbook anonimo che utilizza dipendenza da ruolo git privato
Ad esempio, ho un playbook che utilizza il ruolo base
che dipende da dep
, che sono entrambi ospitati in archivi di git privati. L'esecuzione di ansible-galaxy
recupera e installa tutti i ruoli e le dipendenze come dovrebbe, ma successivamente ansible-playbook
non riesce a utilizzare il nome del ruolo corretto.
play.yml
- hosts: test
roles:
- role: base
requirements.yml
- name: base
src: ssh://[email protected]/ansible/role-base.git
scm: git
role-base/meta/main.yml
galaxy-info:
author: Me
description: Test Ansible role dependencies
min_ansible_version: 1.9
platforms: Ubuntu
dependencies:
- name: dep
src: ssh://[email protected]/ansible/role-dep.git
scm: git
$ ansible-galaxy -r requirements.yml
- executing: git clone ssh://[email protected]/ansible/role-base.git base
- executing: git archive --prefix=base/ --output=/tmp/tmp4YKG7a.tar
- extracting base to ansible-roles/base
- base was installed successfully
- adding dependency: dep
- executing: git clone ssh://[email protected]/ansible/role-dep.git dep
- executing: git archive --prefix=dep/ --output=/tmp/tmpT2YiW4.tar
- extracting base to ansible-roles/dep
- dep was installed successfully
$ ansible-playbook play.yml
ERROR: expected a role name in dictionary: {'scm': 'git', 'src': 'ssh://[email protected]/ansible/role-dep.git', 'name': 'dep'}
Ho provato ad utilizzare il sistema di ruolo nome alternativo come la dipendenza:
dependencies:
- role: "git+ssh://[email protected]/ansible/role-dep.git,,dep"
che va bene per ansible-galaxy
ma ancora ansible-playbook
fallisce ...
$ ansible-galaxy -r requirements.yml
- executing: git clone ssh://[email protected]/ansible/role-base.git base
- executing: git archive --prefix=base/ --output=/tmp/tmpTcvpDu.tar
- extracting base to ansible-roles/base
- base was installed successfully
- adding dependency: dep
- executing: git clone ssh://[email protected]/ansible/role-dep.git dep
- executing: git archive --prefix=dep/ --output=/tmp/tmpd726OV.tar
- extracting base to ansible-roles/dep
- dep was installed successfully
$ ansible-playbook play.yml
ERROR: cannot find role in <pwd>/roles/git+ssh://[email protected]/ansible/role-dep.git,,dep or <pwd>/git+ssh://[email protected]/ansible/role-dep.git,,dep or <pwd>/ansible-roles/git+ssh://[email protected]/ansible/role-dep.git,,dep
c'è un modo per utilizzare le dipendenze di ruolo da repository privato correttamente?
Ho letto che ci sarà un 1.9.5. – udondan
1.9.5 è stato rilasciato ora. Anche se non riesco a vedere la tua correzione nelle note di rilascio: https://groups.google.com/forum/#!topic/ansible-announce/h6KTqCd2r1c – udondan