summaryrefslogtreecommitdiff
path: root/roles/gitserver/tasks/restore_gitolite.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'roles/gitserver/tasks/restore_gitolite.yaml')
-rw-r--r--roles/gitserver/tasks/restore_gitolite.yaml44
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