GitLab-CE(Omnibus)8を11までアップグレードさせる

皆さま、こんにちわ。

久々の更新です。ホントに久々 笑

定期的に更新したいと思いつつ、ついつい間隔が空いてしまい反省。。。

今日はGitLab Community Edition 8.11.2を11.0.3にアップグレードした時の備忘録。 いくつか手が止まるポイントがありましたので、その辺りも含めまとめてみました

f:id:namio6243:20181021122733p:plain

検証環境

※Omnibus packageを利用

手順

パッケージをインストールする元はこちら packages.gitlab.com

アップグレードする際、いくつかのバージョン経由して試してます

8.11.2--->8.17.8

# yum upgrade gitlab-ce-8.17.8-ce.0.el6.x86_64

試してみるとスンナリいかず、以下のようなPostgreSQLのエラー出ます(Migration処理が失敗している?)

gitlab preinstall: Automatically backing up only the GitLab SQL database (excluding everything else!)
Dumping database ... 
Dumping PostgreSQL database gitlabhq_production ... pg_dump: [archiver (db)] connection to database "gitlabhq_production" failed: could not connect to server: そのようなファイルやディレクトリはありません
    Is the server running locally and accepting
    connections on Unix domain socket "/var/opt/gitlab/postgresql/.s.PGSQL.5432"?
Backup failed
[FAILED]
gitlab preinstall: 
gitlab preinstall: Backup failed! If you want to skip this backup, run the following command and
gitlab preinstall: try again:
gitlab preinstall: 
gitlab preinstall:   sudo touch /etc/gitlab/skip-auto-migrations

なので、言われた通りに回避策を実施します

# sudo touch /etc/gitlab/skip-auto-migrations

再度トライするとインストール成功!

# yum upgrade gitlab-ce-8.17.8-ce.0.el6.x86_64

アップグレードしたらreconfigureします(自動的に再起動もされる)

アップグレード後、稀にprocessが上がらなかったりしたので念のためやる。 実行すると、経過が出力されるんですがどうやらChefが実行されてるらしい

# gitlab-ctl reconfigure

ステータスをチェックしてみると全て正常に見える

# gitlab-ctl status
run: gitlab-workhorse: (pid 13682) 139s; run: log: (pid 1156) 4793s
run: logrotate: (pid 14292) 118s; run: log: (pid 12511) 599s
run: nginx: (pid 13698) 139s; run: log: (pid 1155) 4793s
run: postgresql: (pid 13551) 192s; run: log: (pid 1153) 4793s
run: redis: (pid 13542) 193s; run: log: (pid 1163) 4793s
run: sidekiq: (pid 13674) 140s; run: log: (pid 1172) 4793s
run: unicorn: (pid 14302) 118s; run: log: (pid 1162) 4793s

続いて、メジャーバージョンを上げます

8.17.8--->9.0.0

# yum upgrade gitlab-ce-9.0.0-ce.0.el6.x86_64

特に問題なくアップグレード成功

また念のため、reconfigure実行

# gitlab-ctl reconfigure

さらに続いて、メジャーバージョンを上げます

9.0.0--->10.0.3

# yum upgrade gitlab-ce-10.0.3-ce.0.el6.x86_64

しかし、これだとPostgreSQLバージョンが低いのでアップグレード失敗します

という訳でPostgreSQLを先にアップグレードする

※psqlを使うので事前にpathを通しておくこと
# gitlab-ctl pg-upgrade

成功すると、9.2--->9.6にアップグレードされます

再度メジャーバージョンアップにトライすると成功します

# yum upgrade gitlab-ce-10.0.3-ce.0.el6.x86_64

忘れずにreconfigureを実行

# gitlab-ctl reconfigure

※version10になるとUIが結構変わる

ここからはスンナリとアップグレードが進みます

直接11迄アップグレードしようとすると失敗するので、10.8.0を経由する

# yum upgrade gitlab-ce-10.8.0-ce.0.el6.x86_64

忘れずにreconfigureを実行

# gitlab-ctl reconfigure

続いでさらに11.0.3にアップグレードする

# yum upgrade gitlab-ce-11.0.3-ce.0.el6.x86_64

忘れずにreconfigureを実行

# gitlab-ctl reconfigure

以上でアップグレード完了!

ちなみにステータスを確認してみると、色々プロセスが増えていることがわかる

prometheusなどのmonitoring toolもパッケージに含まれるようになったみたい

# gitlab-ctl status
run: alertmanager: (pid 29641) 95s; run: log: (pid 27683) 645s
run: gitaly: (pid 30926) 19s; run: log: (pid 8226) 2659s
run: gitlab-monitor: (pid 29666) 94s; run: log: (pid 8330) 2649s
run: gitlab-workhorse: (pid 30902) 19s; run: log: (pid 1153) 4572s
run: logrotate: (pid 29702) 93s; run: log: (pid 3703) 3985s
run: nginx: (pid 29708) 93s; run: log: (pid 1154) 4572s
run: node-exporter: (pid 29790) 92s; run: log: (pid 8277) 2655s
run: postgres-exporter: (pid 29798) 92s; run: log: (pid 8306) 2651s
run: postgresql: (pid 29806) 91s; run: log: (pid 1149) 4572s
run: prometheus: (pid 30945) 18s; run: log: (pid 8258) 2657s
run: redis: (pid 29829) 90s; run: log: (pid 1150) 4572s
run: redis-exporter: (pid 29833) 90s; run: log: (pid 8292) 2653s
run: sidekiq: (pid 30841) 32s; run: log: (pid 1151) 4572s
run: unicorn: (pid 31087) 13s; run: log: (pid 1152) 4572s

追記

auto migrationを外した影響だと思いますが, バージョンアップ後に出た影響で確認できたものを下記にまとめる