summaryrefslogtreecommitdiff
path: root/roles/gitserver/tasks/restore_gitolite.yaml
blob: 78a9a0bae6adcc1f428d6524f66c95b443778c8e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
- 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: Get repository backup
  s3:
    bucket=devops-sublab
    object=git-backup.tar.asc
    dest=/var/lib/gitolite/repositories.tar.asc
    mode=get
    aws_access_key="{{aws_access_key}}"
    aws_secret_key="{{aws_secret_key}}"
    region=eu-central-1

- name: Decrypt backup
  shell: gpg --decrypt --passphrase "{{aws_encryption_key}}" repositories.tar.asc > repositories.tar
  args:
    chdir: /var/lib/gitolite

- 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
  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

- name: Cleanup backup
  shell: rm -rf repositories.tar.asc repositories.tar old-repositories
  args:
    chdir: /var/lib/gitolite