-
-
Save peterfarrell/054bb42130e87634f630 to your computer and use it in GitHub Desktop.
Solution for `git clone` using Ansible for repos with private submodules with github deploy keys
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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: [email protected]: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`. | |
# |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment