Как передать имя пользователя и пароль при использовании модуля Ansible Git?

при выполнении клонирования, push или pull частного репозитория git, размещенного внутри (например, на экземпляре GitLab) с модулем Git Ansible, как указать имя пользователя и пароль для аутентификации на сервере Git?

Я не вижу способа сделать это в документация.

2 ответов


вы можете использовать что-то вроде этого:

---
- 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

Примечание: если ваш пароль содержит специальные символы @,#,$ и т. д. использовать urlencode с паролем, а также: {{ githubpassword | urlencode }}

затем выполните следующий сценарий:

ansible-playbook -i hosts github.yml -e "githubuser=arbabname" -e "githubpassword=xxxxxxx"

улучшение Арбаб Назарответ, вы можете избежать выставления пароля в терминале, запрашивая учетные данные.

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 

  [...] 

и в задаче ссылаются на переменные.

задач.в формате YML

- name: Get updated files from git repository 
  git:
    repo=https://{{ githubuser | urlencode }}:{{ githubpassword | urlencode }}@github.com/privrepo.git
    dest=/tmp

взято из: клонировать частный репозиторий git с помощью Ansible (используя подсказку пароля)