GitLabを別のサーバに移設しました。その際の手順を以下にまとめます。
前提条件として、移設元のGitLabと移設先のGitLabがOmnibusパッケージからインストールした同じバージョンのものであるとします。
この条件の元だと、簡単にサーバ移設ができました。
まず、移設元サーバで、以下のコマンドにより、バックアップを作成します。
1 |
# gitlab-rake gitlab:backup:create |
バックアップが作成されるのは、gitlab.rb の以下の場所に定義されているディレクトリです。
該当の行がコメントアウトされていれば、デフォルトの場所に保存されます。
1 |
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" |
実行したところ、「1480838198_gitlab_backup.tar」というファイルが作成されました。
次に、移設先サーバにバックアップファイル(「1480838198_gitlab_backup.tar」)を移設元サーバからコピーして、移設先サーバの gitlab.rb の「backup_path」で定義されている場所に置きます。
以降は移設先サーバでの作業になります。
まず、コピーしたバックアップファイルに対して、すべてに「read」のパーミッションを付けておきます。
1 |
-rw-r--r-- 1 root root 99102720 12月 4 17:08 1480838198_gitlab_backup.tar |
次のコマンドで、データベースに接続しているプロセスを止めます。
1 2 3 4 |
# gitlab-ctl stop unicorn ok: down: unicorn: 1s, normally up # gitlab-ctl stop sidekiq ok: down: sidekiq: 1s, normally up |
プロセスが止まっているか確認します。
1 2 3 4 5 6 7 |
# gitlab-ctl status run: gitlab-workhorse: (pid 18964) 263775s; run: log: (pid 29872) 348897s run: logrotate: (pid 21028) 935s; run: log: (pid 29892) 348889s run: postgresql: (pid 18887) 263788s; run: log: (pid 29728) 348942s run: redis: (pid 19012) 263738s; run: log: (pid 29641) 348948s down: sidekiq: 8s, normally up; run: log: (pid 29862) 348899s down: unicorn: 23s, normally up; run: log: (pid 29831) 348901s |
バックアップファイルからリストアします。「BACKUP=」の引数はバックアップファイルのタイムスタンプで、今回のバックアップファイルの場合は「1480838198」になります。
1 |
# gitlab-rake gitlab:backup:restore BACKUP=1480838198 |
GitLabをリスタートして、チェックを実行して、動作を確認したら、終了です。
1 2 |
# gitlab-ctl start # gitlab-rake gitlab:check SANITIZE=true |