diff --git a/roles/copr/dist_git/files/copr_dist_git.cron b/roles/copr/dist_git/files/copr_dist_git.cron new file mode 100644 index 0000000000..8ad31ff03b --- /dev/null +++ b/roles/copr/dist_git/files/copr_dist_git.cron @@ -0,0 +1 @@ +0 0 * * * root /usr/local/bin/create_backup.sh &> /dev/null diff --git a/roles/copr/dist_git/files/create_backup.sh b/roles/copr/dist_git/files/create_backup.sh new file mode 100755 index 0000000000..56a3db424e --- /dev/null +++ b/roles/copr/dist_git/files/create_backup.sh @@ -0,0 +1,9 @@ +#!/usr/bin/bash + +systemctl stop copr-dist-git + +cd /var/lib/dist-git/ +tar --selinux --acls --xattrs -czf tmp.backup.tar.gz /var/lib/dist-git/cache /var/lib/dist-git/git /var/lib/dist-git/gitolite /var/lib/dist-git/web +mv -f tmp.backup.tar.gz tmp.backup.tar.gz + +systemctl start copr-dist-git diff --git a/roles/copr/dist_git/tasks/main.yml b/roles/copr/dist_git/tasks/main.yml index 50234e982e..16a952e4dc 100644 --- a/roles/copr/dist_git/tasks/main.yml +++ b/roles/copr/dist_git/tasks/main.yml @@ -70,6 +70,17 @@ - lineinfile: dest=/etc/cgitrc regexp="^project-list=" line="project-list=/var/lib/copr-dist-git/cgit_pkg_list" - lineinfile: dest=/etc/cgitrc regexp="^scan-path=" line="scan-path=/var/lib/dist-git/git/rpms" +- name: Copy over backup scriplet + copy: src="create_backup.sh" dest=/usr/local/bin/ mode=0755 + tags: + - config + +- name: Set up some cronjobs to backup databases as configured + copy: src="copr_dist_git.cron" dest=/etc/cron.d/ + tags: + - config + + - command: "/usr/share/dist-git/dist_git_sync.sh" - name: ensure that services are enabled and started