Как передать имя пользователя и пароль при использовании модуля 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 (с помощью пароля)