Commit e1d28e4b99d6eb17b13957f9da766128a9ee0110

Authored by Matheus Fernandes
Committed by Athos
1 parent 07697e2d
Exists in master and in 90 other branches 3.x, add_sisp_to_chef, add_super_archives_plugin, api_for_colab, automates_core_packing, backup, backup_not_prod, cdtc_configuration, changes_in_buttons_on_content_panel, colab_automated_login, colab_spb_plugin_recipe, colab_widgets_settings, design_validation, dev-lappis, dev_env_minimal, disable_email_dev, docs, fix_breadcrumbs_position, fix_categories_software_link, fix_edit_institution, fix_edit_software_with_another_license, fix_get_license_info, fix_gitlab_assets_permission, fix_list_style_inside_article, fix_list_style_on_folder_elements, fix_members_pagination, fix_merge_request_url, fix_models_translations, fix_no_license, fix_software_api, fix_software_block_migration, fix_software_communities_translations, fix_software_communities_unit_test, fix_style_create_institution_admin_panel, fix_superarchives_imports, fix_sym_links_noosfero, focus_search_field_theme, gov-user-refactoring, gov-user-refactoring-rails4, header_fix, institution_modal_on_rating, kalibro-conf-refactoring, kalibro-processor-package, lxc_settings, margin_fix, mezuro_cookbook, performance, prezento, r3, refactor_download_block, refactor_software_communities, refactor_software_for_sisp, register_page, release-process, release-process-v2, remove-unused-images, remove_backup_emails, remove_broken_theme, remove_secondary_email_from_user, remove_sisp_buttons, removing_super_archives_email, review_message, scope2method, signals_user_noosfero, sisp_catalog_header, sisp_colab_config, sisp_dev, sisp_dev_master, sisp_simple_version, software_as_organization, software_catalog_style_fix, software_communities_html_refactor, software_infos_api, spb_minimal_env, spb_to_rails4, spec_refactor, stable-4.1, stable-4.2, stable-4.x, stable-devel, support_docs, syslog, temp_soft_comm_refactoring, theme_header, theme_javascript_refactory, thread_dropdown, thread_page, update_search_by_categories, update_software_api, update_softwares_boxes

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>
@@ -8,3 +8,4 @@ @@ -8,3 +8,4 @@
8 /local.rake 8 /local.rake
9 *.swp 9 *.swp
10 *.swo 10 *.swo
  11 +/backups
@@ -47,6 +47,34 @@ file &#39;config/local/ssh_config&#39; =&gt; [&#39;nodes.yaml&#39;, &#39;config/local/ips.yaml&#39;, &#39;ssh_c @@ -47,6 +47,34 @@ file &#39;config/local/ssh_config&#39; =&gt; [&#39;nodes.yaml&#39;, &#39;config/local/ips.yaml&#39;, &#39;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']
utils/migration/backup_integration.sh 0 → 100755
@@ -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 +
utils/migration/backup_social.sh 0 → 100755
@@ -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.'
utils/migration/restore_integration.sh 0 → 100755
@@ -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.'