Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

GitLabを別サーバに移行した時一部プロジェクトが表示できなくなった時の対処法

More than 3 years have passed since last update.

環境

  • 移行元: Fedora22上のソースからインストールしたGitLab 8.9.3
  • 移行先: CentOS7 (1511)上のGitLab 8.9.3 (omnibus版)

データの移行方法

移行先の環境に公式の手順通りGitLabをインストール後,gitlab-ctl reconfigureしてからgitlab-rake gitlab:backup:restoreで移行元の環境でバックアップしたデータをリストア.

(この辺はあまりちゃんと覚えてない)

現象

GitLabを別サーバに移行後,一部のプロジェクトページを開いた時に500エラーが発生してプロジェクトの情報が見れなくなる.

production.logには以下の様な内容が記録される.

Parameters: {"namespace_id"=>"...", "id"=>"..."}
Completed 500 Internal Server Error in 71ms (ActiveRecord: 5.5ms)

OpenSSL::Cipher::CipherError (bad decrypt):
app/models/project.rb:456:in `import_url'
app/models/project.rb:486:in `external_import?'
app/models/project.rb:478:in `import?'
app/models/project.rb:494:in `import_in_progress?'
app/controllers/projects_controller.rb:93:in `show'
lib/gitlab/middleware/go.rb:16:in `call'

対処法

移行前の環境からdb_key_baseをコピーして持ってくる.

  1. とりあえずgitlab-ctl stopでGitLabを止める.
  2. ソースからの移行の場合は移行元の環境の/home/git/config/gitlab_secrets.ymlにそれっぽいキーがあるのでその値をメモする.(後述の通りomnibus版の場合は/etc/gitlab/gitlab-secrets.jsonにある)
  3. 移行先の環境で/etc/gitlab/gitlab-secrets.jsonを開き,gitlab_cidb_key_baseの値を2.でメモした値に書き換える.
  4. CE版であればgitlab-rails runner "Project.where.not(import_url: nil).each { |p| p.import_data.destroy if p.import_data }"を実行して不要になったデータを削除する? (あまりよくわかってない)
  5. gitlab-ctl startでGitLabを起動する.

これでちゃんと表示されるようになるはず.

参考ページ

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away