git clone --mirror с Ansible 2.4

Как правите това чрез git модула в ansible 2.4? Разгледах doco http://docs.ansible.com/ansible/latest/git_module.html няма опция за mirror клониране.

Има ли някакъв друг начин да го направя, без да се налага да изпълнявам команди направо нагоре.. В момента имам нещо, което изглежда така..

- name: Clone git repo
  git:
    repo: ssh://[email protected]/foo/bar.git
    key_file: /home/deploy/.ssh/id_rsa
    dest: /path/to/repo
    accept_hostkey: true
    update: yes
    version: master
    bare: no
  become_user: deploy
  when: repo_created.changed

Харесвам хубавите конфигурационни превключватели за приемане на хост ключове и т.н. Алтернативата според мен е нещо подобно.. (все още нетествано)

- name: Test if github is a known host
  shell: ssh-keygen -l -f /home/deploy/.ssh/known_hosts -F github.com
  register: github_host_is_known
  sudo_user: deploy
  ignore_errors: True
  changed_when: github_host_is_known.rc != 0
- name: Add githubs key to known hosts
  shell: ssh-keyscan -H github.com >> /home/deploy/.ssh/known_hosts
  when: github_host_is_known.rc != 0
  sudo_user: deploy
- name: "Clone repo"
  command: git clone --mirror [email protected]:foo/bar.git /path/to/repo
  sudo_user: deploy
  when: repo_created.changed

Това ли е единственият/най-добрият ми вариант?


person mcbain83    schedule 08.01.2018    source източник


Отговори (1)


Така че досега това е най-необходимият начин, по който успях да клонирам огледално репо с помощта на Ansible 2.4

- name: Add githubs key to known hosts
  known_hosts:
    path: /home/deploy/.ssh/known_hosts
    name: github.com
    key: "{{ lookup('pipe', 'ssh-keyscan -t rsa github.com') }}"
    state: present
  sudo_user: deploy

- name: change the owner of the known_hosts file to deploy user
# because https://github.com/ansible/ansible/issues/29331
  file:
    path: /home/deploy/.ssh/known_hosts
    owner: deploy
    group: deploy
    mode: 0644

- name: Clone repo with --mirror
  environment:
    GIT_SSH_COMMAND: ssh -i /home/deploy/.ssh/id_rsa # Needs git 2.3 + for this to work
  command: git clone --mirror [email protected]:foo/bar.git /path/to/repo
  sudo_user: deploy

Чувството не е толкова лошо. Все пак би било хубаво да има опция за огледало.

Редактиране: каза твърде рано, изглежда, че модулът unknown_hosts променя разрешенията за файлове. :( сега се чувствам по-хакано

person mcbain83    schedule 08.01.2018