GitLabを別サーバーに移行

gitlab_move_serverGitLabを別サーバーに移行したときの覚書。

移行元: 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 >