diff options
Diffstat (limited to 'roles/gitserver/tasks/restore_gitolite.yaml')
-rw-r--r-- | roles/gitserver/tasks/restore_gitolite.yaml | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/roles/gitserver/tasks/restore_gitolite.yaml b/roles/gitserver/tasks/restore_gitolite.yaml new file mode 100644 index 0000000..c937ad1 --- /dev/null +++ b/roles/gitserver/tasks/restore_gitolite.yaml @@ -0,0 +1,44 @@ +- name: Create dummy key + shell: ssh-keygen -t rsa -b 2048 -N '' -f dummy_key + args: + chdir: /var/lib/gitolite + creates: /var/lib/gitolite/dummy_key + +- name: Initialize gitolite + shell: gitolite setup -pk dummy_key.pub + args: + chdir: /var/lib/gitolite + creates: /var/lib/gitolite/.gitolite/conf + +- name: Get repository backup + get_url: + url=https://oberon.sublab.org/protected/repositories.tar.gz + url_username="{{download_user}}" + url_password="{{download_pass}}" + validate_certs=no + dest=/var/lib/gitolite/repositories.tar.gz + +- name: Create directory for backup unpack + file: name=/var/lib/gitolite/old-repositories state=directory + +- name: Unpack repository backup + shell: tar -x --strip-components=1 -f ../repositories.tar.gz + args: + chdir: /var/lib/gitolite/old-repositories + creates: /var/lib/gitolite/old-repositories/gitolite-admin.git + +- name: Push gitolite backup + shell: gitolite push -f /var/lib/gitolite/repositories/gitolite-admin.git master:master + args: + chdir: /var/lib/gitolite/old-repositories/gitolite-admin.git + +- name: Put restore script + copy: + dest=/var/lib/gitolite/restore-backup.sh + src=restore-backup.sh + mode=0755 + +- name: Run restore + shell: ./restore-backup.sh + args: + chdir: /var/lib/gitolite |