GitLabを別サーバーに移行
GitLabを別サーバーに移行したときの覚書。
移行元: CentOS 6.7, Git 2.6.4, Ruby 2.2.2p95, GitLab 8.6.6
移行先: CentOS 6.7, Git 2.8.1, Ruby 2.2.4p230
1.移行先へGitLabをインストール
前の記事を参考に
いくつかハマったポイント
gitlab-ctl reconfigureするときはgitlab-ctl startの状態でやらないと下記エラーになる
[execute] psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/opt/gitlab/postgresql/.s.PGSQL.5433"?
redisをGitLab付属ではなく、インストール済みのredis serverを使う場合はTCP socketを使うように設定しておかないと500エラーになった。
# less /etc/redis.conf
port 6379
unixsocket /tmp/redis.sock
unixsocketperm 770
gitユーザーをredisグループに参加させる
# usermod -a -G redis git
接続テスト
# sudo -u git -H redis-cli -s /tmp/redis.sock ping
「PONG」が表示されれば接続できている。
参考
2.移行元でバックアップ → 移行先でリストア
公式サイトを参考にバックアップコマンド実行
# gitlab-rake gitlab:backup:create
/var/opt/gitlab/backups/にバックアップファイルが作られる。これを移行先へ持っていく。
# mv ~/1461141784_gitlab_backup.tar /var/opt/gitlab/backups/
# gitlab-rake gitlab:backup:restore BACKUP=1461141784
再起動
# gitlab-ctl restart
問題がないかチェック
# gitlab-rake gitlab:check SANITIZE=true
Repo base access is drwxrws---? ... no
Try fixing it:
sudo chmod -R ug+rwX,o-rwx /var/opt/gitlab/git-data/repositories
sudo chmod -R ug-s /var/opt/gitlab/git-data/repositories
sudo find /var/opt/gitlab/git-data/repositories -type d -print0 | sudo xargs -0 chmod g+s
For more information see:
doc/install/installation.md in section "GitLab Shell"
Please fix the error above and rerun the checks.
権限を修正しろと出たのでメッセージ通りのコマンドを実行
# sudo chown -R git /var/opt/gitlab/gitlab-rails/uploads
# sudo find /var/opt/gitlab/gitlab-rails/uploads -type f -exec chmod 0644 {} \;
# sudo find /var/opt/gitlab/gitlab-rails/uploads -type d -not -path /var/opt/gitlab/gitlab-rails/uploads -exec chmod 0700 {} \;
3.移行元でGitLabをアンインストール
コマンド確認
# gitlab-ctl -h
アンインストール
# gitlab-ctl uninstall
データも削除
# gitlab-ctl cleanse
既に全部バックアップ済みなので生成されたファイルを削除
# rm -rf gitlab-cleanse-*
# rm -rf /opt/gitlab/
YUMリポジトリ削除
# rm /etc/yum.repos.d/gitlab_gitlab-ce.repo
< Related Posts >