Ansible git clone task

Solution for `git clone` using Ansible for repos with private submodules with github deploy keys.

1

Votes

Problem:

#

If you use git submodules linking two private github repos, you'll need to create a separate deploy key for each.

Multiple keys are not supported by Ansible, nor does ansible (when running git module) resort to your .ssh/config file.

This means your ansible playbook will hang in this case.

#

You can however use the ansible git module to checkout your repo in multiple steps, like this:

#

- hosts: webserver
  vars:
    - destination: /your/dest/path
  tasks:
    - name: App | Cloning repos + submodules
      git: repo=git@github.com:Organisation/{{ item.repo }}.git
           dest={{ item.dest }}
           accept_hostkey=yes
           force=yes
           recursive=no
           key_file=/home/user/.ssh/id_rsa.github-{{ item.repo }}
      with_items:
        -
          dest: "{{ destination }}"
          repo: PrimaryRepo
        -
          dest: "{{ destination }}/app/core"
          repo: SubmoduleRepo

#

The key part is that recursive is set to no.

#

Vote Here

You must earn at least 1 vote on your snippets to be allowed to vote

Terms Of Use

Privacy Policy

Featured snippets are MIT license

Gears & Masters

Advertise

DevOpsnipp.com © 2020

medium.png