Commit c6f8c9dbcca7c467334ad2af06eb3978f2ae0f7d
Exists in
master
and in
17 other branches
Merge branch 'backup_documentation' into 'master'
Backup Documentation
Showing
3 changed files
with
37 additions
and
2 deletions
Show diff stats
README.md
| @@ -74,12 +74,46 @@ external_url "http://gitlab.example.com" | @@ -74,12 +74,46 @@ external_url "http://gitlab.example.com" | ||
| 74 | 74 | ||
| 75 | Run `sudo gitlab-ctl reconfigure` for the change to take effect. | 75 | Run `sudo gitlab-ctl reconfigure` for the change to take effect. |
| 76 | 76 | ||
| 77 | +### Creating an application backup | ||
| 78 | + | ||
| 79 | +To create a backup of your repositories and GitLab metadata, run the following command. | ||
| 80 | + | ||
| 81 | +```shell | ||
| 82 | +sudo gitlab-rake gitlab:backup:create | ||
| 83 | +``` | ||
| 84 | + | ||
| 85 | +This will store a tar file in `/var/opt/gitlab/backups`. The filename will look like | ||
| 86 | +`1393513186_gitlab_backup.tar`, where 1393513186 is a timestamp. | ||
| 87 | + | ||
| 88 | +### Restoring an application backup | ||
| 89 | + | ||
| 90 | +We will assume that you have installed GitLab from an omnibus package and run | ||
| 91 | +`sudo gitlab-ctl reconfigure` at least once. | ||
| 92 | + | ||
| 93 | +First make sure your backup tar file is in `/var/opt/gitlab/backups`. | ||
| 94 | + | ||
| 95 | +```shell | ||
| 96 | +sudo cp 1393513186_gitlab_backup.tar /var/opt/gitlab/backups/ | ||
| 97 | +``` | ||
| 98 | + | ||
| 99 | +Next, restore the backup by running the restore command. You need to specify the | ||
| 100 | +timestamp of the backup you are restoring. | ||
| 101 | + | ||
| 102 | +```shell | ||
| 103 | +# This command will overwrite the contents of your GitLab database! | ||
| 104 | +sudo gitlab-rake gitlab:backup:restore BACKUP=1393513186 | ||
| 105 | +``` | ||
| 106 | + | ||
| 107 | +If there is a GitLab version mismatch between your backup tar file and the installed | ||
| 108 | +version of GitLab, the restore command will abort with an error. Install a package for | ||
| 109 | +the [required version](https://www.gitlab.com/downloads/archives/) and try again. | ||
| 110 | + | ||
| 77 | ### Invoking Rake tasks | 111 | ### Invoking Rake tasks |
| 78 | 112 | ||
| 79 | To invoke a GitLab Rake task, use `gitlab-rake`. For example: | 113 | To invoke a GitLab Rake task, use `gitlab-rake`. For example: |
| 80 | 114 | ||
| 81 | ```shell | 115 | ```shell |
| 82 | -sudo gitlab-rake gitlab:backup:create | 116 | +sudo gitlab-rake gitlab:check |
| 83 | ``` | 117 | ``` |
| 84 | 118 | ||
| 85 | Contrary to with a traditional GitLab installation, there is no need to change | 119 | Contrary to with a traditional GitLab installation, there is no need to change |
files/gitlab-cookbooks/gitlab/attributes/default.rb
| @@ -87,7 +87,7 @@ default['gitlab']['gitlab-rails']['ldap_bind_dn'] = "_the_full_dn_of_the_user_yo | @@ -87,7 +87,7 @@ default['gitlab']['gitlab-rails']['ldap_bind_dn'] = "_the_full_dn_of_the_user_yo | ||
| 87 | default['gitlab']['gitlab-rails']['ldap_password'] = "_the_password_of_the_bind_user" | 87 | default['gitlab']['gitlab-rails']['ldap_password'] = "_the_password_of_the_bind_user" |
| 88 | default['gitlab']['gitlab-rails']['ldap_allow_username_or_email_login'] = true | 88 | default['gitlab']['gitlab-rails']['ldap_allow_username_or_email_login'] = true |
| 89 | default['gitlab']['gitlab-rails']['satellites_path'] = "/var/opt/gitlab/git-data/gitlab-satellites" | 89 | default['gitlab']['gitlab-rails']['satellites_path'] = "/var/opt/gitlab/git-data/gitlab-satellites" |
| 90 | -default['gitlab']['gitlab-rails']['backup_path'] = "tmp/backups" | 90 | +default['gitlab']['gitlab-rails']['backup_path'] = "/var/opt/gitlab/backups" |
| 91 | default['gitlab']['gitlab-rails']['gitlab_shell_path'] = "/opt/gitlab/embedded/service/gitlab-shell/" | 91 | default['gitlab']['gitlab-rails']['gitlab_shell_path'] = "/opt/gitlab/embedded/service/gitlab-shell/" |
| 92 | default['gitlab']['gitlab-rails']['gitlab_shell_repos_path'] = "/var/opt/gitlab/git-data/repositories" | 92 | default['gitlab']['gitlab-rails']['gitlab_shell_repos_path'] = "/var/opt/gitlab/git-data/repositories" |
| 93 | default['gitlab']['gitlab-rails']['gitlab_shell_hooks_path'] = "/opt/gitlab/embedded/service/gitlab-shell/hooks/" | 93 | default['gitlab']['gitlab-rails']['gitlab_shell_hooks_path'] = "/opt/gitlab/embedded/service/gitlab-shell/hooks/" |
files/gitlab-cookbooks/gitlab/recipes/gitlab-rails.rb
| @@ -30,6 +30,7 @@ gitlab_rails_log_dir = node['gitlab']['gitlab-rails']['log_directory'] | @@ -30,6 +30,7 @@ gitlab_rails_log_dir = node['gitlab']['gitlab-rails']['log_directory'] | ||
| 30 | gitlab_rails_working_dir, | 30 | gitlab_rails_working_dir, |
| 31 | gitlab_rails_tmp_dir, | 31 | gitlab_rails_tmp_dir, |
| 32 | gitlab_rails_public_uploads_dir, | 32 | gitlab_rails_public_uploads_dir, |
| 33 | + node['gitlab']['gitlab-rails']['backup_path'], | ||
| 33 | gitlab_rails_log_dir | 34 | gitlab_rails_log_dir |
| 34 | ].each do |dir_name| | 35 | ].each do |dir_name| |
| 35 | directory dir_name do | 36 | directory dir_name do |