Commit e1d28e4b99d6eb17b13957f9da766128a9ee0110
Committed by
Athos
1 parent
07697e2d
Exists in
master
and in
90 other branches
Add rake backup and restore tasks
rake backup and restore tasks call the scripts in utils/migration/ Signed-off-by: Athos Ribeiro <athoscribeiro@gmail.com> Signed-off-by: Lucas Kanashiro <kanashiro.duarte@gmail.com> Signed-off-by: msfernandes <matheus.souza.fernandes@gmail.com>
Showing
5 changed files
with
97 additions
and
0 deletions
Show diff stats
.gitignore
Rakefile
| @@ -47,6 +47,34 @@ file 'config/local/ssh_config' => ['nodes.yaml', 'config/local/ips.yaml', 'ssh_c | @@ -47,6 +47,34 @@ file 'config/local/ssh_config' => ['nodes.yaml', 'config/local/ips.yaml', 'ssh_c | ||
| 47 | puts 'ERB %s' % t.name | 47 | puts 'ERB %s' % t.name |
| 48 | end | 48 | end |
| 49 | 49 | ||
| 50 | +task :backup => ssh_config_file do | ||
| 51 | + #cleanup before | ||
| 52 | + sh 'ssh', '-F', ssh_config_file, 'integration', 'sudo', 'rm -rf /tmp/backups' | ||
| 53 | + sh 'ssh', '-F', ssh_config_file, 'social', 'sudo', 'rm -rf /tmp/backups' | ||
| 54 | + sh 'mkdir', '-p', 'backups' | ||
| 55 | + #integration | ||
| 56 | + sh 'scp', '-F', ssh_config_file, 'utils/migration/backup_integration.sh', 'integration:/tmp' | ||
| 57 | + sh 'ssh', '-F', ssh_config_file, 'integration', 'sudo', '/tmp/backup_integration.sh' | ||
| 58 | + sh 'scp', '-F', ssh_config_file, 'integration:/tmp/backups/*', 'backups/' | ||
| 59 | + sh 'ssh', '-F', ssh_config_file, 'integration', 'sudo', 'rm -rf /tmp/backups' | ||
| 60 | + #social | ||
| 61 | + sh 'scp', '-F', ssh_config_file, 'utils/migration/backup_social.sh', 'social:/tmp' | ||
| 62 | + sh 'ssh', '-F', ssh_config_file, 'social', 'sudo', '/tmp/backup_social.sh' | ||
| 63 | + sh 'scp', '-F', ssh_config_file, 'social:/tmp/backups/*', 'backups/' | ||
| 64 | + sh 'ssh', '-F', ssh_config_file, 'social', 'sudo', 'rm -rf /tmp/backups' | ||
| 65 | +end | ||
| 66 | + | ||
| 67 | +task :restore => ssh_config_file do | ||
| 68 | + #integration | ||
| 69 | + sh 'scp', '-r', '-F', ssh_config_file, 'backups', 'integration:/tmp' | ||
| 70 | + sh 'scp', '-F', ssh_config_file, 'utils/migration/restore_integration.sh', 'integration:/tmp' | ||
| 71 | + sh 'ssh', '-F', ssh_config_file, 'integration', 'sudo', '/tmp/restore_integration.sh' | ||
| 72 | + #social | ||
| 73 | + sh 'scp', '-r', '-F', ssh_config_file, 'backups', 'social:/tmp' | ||
| 74 | + sh 'scp', '-F', ssh_config_file, 'utils/migration/restore_social.sh', 'social:/tmp' | ||
| 75 | + sh 'ssh', '-F', ssh_config_file, 'social', 'sudo', '/tmp/restore_social.sh' | ||
| 76 | +end | ||
| 77 | + | ||
| 50 | task :bootstrap_common => 'config/local/ssh_config' | 78 | task :bootstrap_common => 'config/local/ssh_config' |
| 51 | 79 | ||
| 52 | unless ENV['nodeps'] | 80 | unless ENV['nodeps'] |
| @@ -0,0 +1,28 @@ | @@ -0,0 +1,28 @@ | ||
| 1 | +#!/bin/bash | ||
| 2 | + | ||
| 3 | +echo 'I: starting integration backup...' | ||
| 4 | + | ||
| 5 | +echo 'I: Creating /tmp/backups/ on integration' | ||
| 6 | +mkdir -p /tmp/backups/ | ||
| 7 | + | ||
| 8 | +# Colab Backup | ||
| 9 | +echo 'I: dumping colab data' | ||
| 10 | +colab-admin dumpdata > /tmp/backups/colab_dump.json | ||
| 11 | + | ||
| 12 | +# GitLab Backup | ||
| 13 | +cd /usr/lib/gitlab | ||
| 14 | +echo 'I: creating gitlab backup' | ||
| 15 | +sudo -u git bundle exec rake gitlab:backup:create RAILS_ENV=production > /dev/null | ||
| 16 | +# TODO fix regular expression | ||
| 17 | +mv /var/lib/gitlab/backups/*_gitlab_backup.tar /tmp/backups | ||
| 18 | + | ||
| 19 | +echo 'I: creating gitlab shell ssh backup' | ||
| 20 | +tar -czf /tmp/backups/gitlab_shell_ssh.tar.gz /var/lib/gitlab-shell/.ssh/ 2> /dev/null | ||
| 21 | + | ||
| 22 | +# Mailman Backup | ||
| 23 | +cd /var/lib/mailman | ||
| 24 | +echo 'I: creating mailman backups' | ||
| 25 | +tar -czf /tmp/backups/mailman_backup.tar.gz lists/ data/ archives/ | ||
| 26 | + | ||
| 27 | +echo 'I: integration backup done.' | ||
| 28 | + |
| @@ -0,0 +1,15 @@ | @@ -0,0 +1,15 @@ | ||
| 1 | +#!/bin/bash | ||
| 2 | + | ||
| 3 | +echo 'I: starting social backup...' | ||
| 4 | + | ||
| 5 | +echo 'I: Creating /tmp/backups/ on social' | ||
| 6 | +mkdir -p /tmp/backups/ | ||
| 7 | + | ||
| 8 | +#Noosfero backup | ||
| 9 | +cd /usr/lib/noosfero | ||
| 10 | +echo 'I: creating Noosfero backup' | ||
| 11 | +RAILS_ENV=production sudo -u noosfero bundle exec rake backup 2> /dev/null 1> /dev/null | ||
| 12 | +# TODO fix regular expression | ||
| 13 | +mv tmp/backup/*.tar.gz /tmp/backups/noosfero_backup.tar.gz | ||
| 14 | + | ||
| 15 | +echo 'I: social backup done.' |
| @@ -0,0 +1,25 @@ | @@ -0,0 +1,25 @@ | ||
| 1 | +#!/bin/bash | ||
| 2 | + | ||
| 3 | +echo 'Starting restore on integration...' | ||
| 4 | +# Colab Restore | ||
| 5 | +echo 'restoring colab...' | ||
| 6 | +colab-admin loaddata /tmp/backups/colab_dump.json > /dev/null | ||
| 7 | +echo 'done.' | ||
| 8 | + | ||
| 9 | +# Gitlab Restore | ||
| 10 | +echo 'restoring gitlab...' | ||
| 11 | +echo 'cleaning gitlab backups directory' | ||
| 12 | +sudo rm -rf /var/lib/gitlab/backups/* | ||
| 13 | +#TODO: fix wildcard | ||
| 14 | +mv /tmp/backups/*_gitlab_backup.tar /var/lib/gitlab/backups/ | ||
| 15 | +cd /usr/lib/gitlab | ||
| 16 | +sudo -u git bundle exec rake gitlab:backup:restore RAILS_ENV=production force=yes 1> /dev/null 2>/dev/null | ||
| 17 | +echo 'done.' | ||
| 18 | + | ||
| 19 | +# Mailman Restore | ||
| 20 | +echo 'restoring mailman...' | ||
| 21 | +mv /tmp/backups/mailman_backup.tar.gz /var/lib/mailman/ | ||
| 22 | +cd /var/lib/mailman | ||
| 23 | +tar -vxzf mailman_backup.tar.gz 1> /dev/null 2> /dev/null | ||
| 24 | + | ||
| 25 | +echo 'done.' |