GitLab-CE(Omnibus)8を11までアップグレードさせる
皆さま、こんにちわ。
久々の更新です。ホントに久々 笑
定期的に更新したいと思いつつ、ついつい間隔が空いてしまい反省。。。
今日はGitLab Community Edition 8.11.2を11.0.3にアップグレードした時の備忘録。 いくつか手が止まるポイントがありましたので、その辺りも含めまとめてみました
検証環境
- CentOS 6.8
- GitLab CE 8.11.2
- PostgreSQL 9.2.18
※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を外した影響だと思いますが, バージョンアップ後に出た影響で確認できたものを下記にまとめる
新規ユーザ作成機能が有効化されてしまう(下記手順で対応した)
GitLabの誰でも新規ユーザ登録できる機能を無効にする - namio's blogAdmin Area > Applications のapplicatin, secretが更新されるのでAPI連携しているものがある場合はそちらも修正する.