Question:
I am using ansible-galaxy (v2.0.0.2) to install ansible roles that which has the source code on Bitbucket through the requirements.yml file. But I could not checkout the code from bitbucket.org with the private key. Here is the error message, and also my requirements.yml
content.
Does any one what’s the correct requirements.yml
file format for ansible-galaxy 2.0.0.2?
1 2 3 4 5 6 7 8 9 10 11 |
+ ansible-galaxy -vvv install --force --role-file ansible/requirements.yml --roles-path ./ansible/roles Using /etc/ansible/ansible.cfg as config file Opened /tmp/.ansible_galaxy found role {'scm': 'git', 'src': 'git@bitbucket.org:myrepo/nginx.git', 'version': 'latest', 'name': 'nginx'} in yaml file Installing role nginx [WARNING]: - nginx was NOT installed successfully: - command git checkout latest failed in directory /tmp/tmpQRZc8j (rc=1) ERROR! - you can use --ignore-errors to skip failed roles and finish processing the list. |
[requirements.yml]
1 2 3 4 5 6 7 |
- name: nginx src: git@bitbucket.org:myrepo/nginx.git scm: git version: latest accept_hostkey: yes key_file: /tmp/.ssh/id_rsa |
Answer:
Maybe the scp syntax does not work. The url one might:
1 2 |
ssh://git@bitbucket.org/myrepo/nginx.git |
Try, as in this ansible issue:
Direct copy from github clone repo path
1 2 |
git@github.com:geerlingguy/ansible-role-php.git |
Actual URL that works
1 2 |
ssh://git@github.com/geerlingguy/ansible-role-php.git |
You have to replace the
:
with a/
.
And it needs to be a URL (i.e. contain://
) otherwise ansible-galaxy assumes it’s a filesystem path.