Question:
While doing clone, push or pull of a private git repository hosted internally (e.g. on a GitLab instance) with Ansible’s Git module, how do I specify username and password to authenticate with the Git server?
I don’t see any way to do this in the documentation.
Answer:
You can use something like this:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
--- - hosts: all gather_facts: no become: yes tasks: - name: install git package apt: name: git - name: Get updated files from git repository git: repo: "https://{{ githubuser | urlencode }}:{{ githubpassword | urlencode }}@github.com/privrepo.git" dest: /tmp |
Note: {{ githubpassword | urlencode }}
is used here, if your password also contains special characters @,#,$ etc
Then execute the following playbook:
1 2 |
ansible-playbook -i hosts github.yml -e "githubuser=arbabname" -e "githubpassword=xxxxxxx" |
Note: Make sure you put the credentials in ansible vaults or pass it
secure way