Как передать имя пользователя и пароль при использовании модуля Ansible Git?
Выполняя клонирование, нажмите или потяните частный репозиторий git, размещенный внутри организации (например, в экземпляре GitLab) с модулем Ansible Git, как указать имя пользователя и пароль для аутентификации с помощью сервера Git?
Я не вижу никакого способа сделать это в документации.
Ответы
Ответ 1
Вы можете использовать что-то вроде этого:
---
- 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 }}@github.com/privrepo.git"
dest: /tmp
Примечание. Если ваш пароль также содержит специальные символы @, #, $ и т.д., {{ githubpassword | urlencode }}
также используйте urlencode
с паролем: {{ githubpassword | urlencode }}
{{ githubpassword | urlencode }}
Затем выполните следующую игру:
ansible-playbook -i hosts github.yml -e "githubuser=arbabname" -e "githubpassword=xxxxxxx"
Ответ 2
Улучшение ответа Arbab Nazar, вы можете избежать раскрытия своего пароля в терминале, запросив учетные данные.
playbook.yml
---
- name: ANSIBLE - Shop Installation
hosts: '{{ target }}'
vars_prompt:
- name: "githubuser"
prompt: "Enter your github username"
private: no
- name: "githubpassword"
prompt: "Enter your github password"
private: yes
[...]
А в задаче задания переменные.
task.yml
- name: Get updated files from git repository
git:
repo=https://{{ githubuser | urlencode }}:{{ githubpassword | urlencode }}@github.com/privrepo.git
dest=/tmp
Взято из: клонировать частный репозиторий git с помощью Ansible (с помощью пароля)