LoginSignup
17
17

More than 5 years have passed since last update.

GitLab 7.xからGitLab 8.0にアップデートする方法 (GitLab CIあり編)

Posted at

GitLab 8.0でGitLab本体に取り込まれたCI機能を活用するため、GitLab CEのアップデートを行なう手順をまとめました。

前提

  • GitLab 7.xを利用している
    • 試験したのは7.14.3
  • GitLab CI 7.xを利用している
  • GitLab CIがインテグレートされたGitLab 8.0を利用したい
  • omnibus-gitlabパッケージを利用している
  • RedHat系(Red Hat Enterprise Linux, CentOS etc.)またはDebian系(Debian, Ubuntu etc.)のLinux OSを利用している
    • 試験したのはCentOS 7.1 (1503)

手順

Migrate GitLab CI to GitLab CE or EE - GitLab Documentationを読んで、素直にやっていけばよいが、インストール方法がomnibus-gitlabとsourceのものが混在していたりするので、

通常どおりの手順

通常どおりのアップデート手順

$ sudo yum update gitlab-ce

GitLab CI 8.0をGitLab CE 8.0のCIへマイグレートする手順

タイトルが何を言ってるか分からないという意見もある通りだが、GitLab 8.0の段階でデータの移行が発生するので、以下の作業を行なう。

1. GitLab CIを一時的に無効化する

https://[gitlab-server]/admin/application_settingsにアクセスして、[Continuous Integration]セクションの「When unchecked CI is disabled until rake ci:migrate is run (8.0 only)」のチェックを外す。ちなみに、以降の作業を実施すると、再び、チェックが入ります。

2. GitLab CIからCEへデータ移行し、GitLab CIを再度有効化する

CI関連のプロセスを停止。

$ sudo gitlab-ctl stop ci-unicorn
$ sudo gitlab-ctl stop ci-sidekiq

シークレットトークンを取得して、 /etc/gitlab/gitlab.rb に転記。

$ sudo gitlab-ci-rake backup:show_secrets

GitLab CEパッケージアップデート直後なら、不要かもしれないが、バックアップを取る。

$ sudo gitlab-ci-rake backup:create

バックアップファイルを適切な位置に移動(上記を省略してもこの手順は必要)。

$ sudo mv /var/opt/gitlab/ci-backups/*_gitlab_ci_backup.tar /var/opt/gitlab/backups/

リカバリするバックアップファイルを設置。

$ sudo gitlab-rake ci:migrate

を実行すると、以下の通り、確認されるので、問題ないことを確認して yes を入力。

This will remove all CI related data and restore it from the provided backup.
Do you want to continue (yes/no)? yes

時間がかかるので、待つ。ログ(抜粋)は末尾に記載。

完了したら、以下の通り、プロセスを再起動して、完了。

$ sudo gitlab-ctl hup unicorn
$ sudo gitlab-ctl restart sidekiq

感想

UIデザインのリニューアルも合わさって、GitLab CIはさらに使いやすくなってきたように思います。今回のGitLab CEへのCI機能取り込みはomnibus-gitlabパッケージの台頭と同じくらい「フルスタック」感を感じさせてくれました。資金調達も進んでおり、GitLabプロジェクトはよい方向に進んでいるため、ローコストで心地よく安心して使えています。


参考

gitlab-rake ci:migrate実行時に標準出力に出てくるログ

(抜粋)

Unpacking backup ... done
Restoring database ...
Restoring PostgreSQL database gitlabhq_production ...
SET
SET
DROP INDEX
DROP INDEX
SET
CREATE TABLE
CREATE SEQUENCE
ALTER SEQUENCE
ALTER TABLE
CREATE INDEX
done
Restoring builds ...
done
Migrating tags ...
Inserting tags...
Deleting old taggings...
Inserting taggings...
Resetting counters...
done
Migrating services ...
done
Deleting tmp directories ... done
done
done
17
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
17