pruneの作業日記

転職してエンジニアになった人がカタカタやった簡単なことを記録します。

Omnibus GitLab13.0.0にUpdateしようと思ったらちょっとだけコケた

自動Update

バックアップなどは公式サイト通りにcrontabで深夜にやっております。
その後、Updateも自動化したかったのでスクリプトを作成しました。
omnibusのgitlab-eeを使用して運用しております。
うちは、シングルノードで動いているので、公式サイト通りにゼロダウンタイムの手順でやっております。
公式サイトにも書かれている通り、シングルノードの場合は100%ゼロダウンタイムになるわけではありません。
Update完了後は会社のSoftwareチャンネルでアナウンスしております。
適当に書いたスクリプトなのでVersionとかは表示せず、リンクで対応しております。 RHEL用のものになります。

github.com

GitLab13.0.0に自動Updateされなかった

途中でエラーが起きた場合もUpdateしたと通知が入っていましたが、実際にはUpdateされていませんでした。 (ハンドリングできてない)
GitLab13以降はPostgres11以上が必要なようです。
GitLab 13 specific changes | GitLab

環境をしらべて見るとどうやら10.12のままでした。

f:id:chikesomnia:20200603222720p:plain
Components
自動でUpdateされているものだと思っていましたが、version 11には手動でUpdateしないといけないようです。

Automatically during package upgrades (unless opted out) and when user manually runs gitlab-ctl pg-upgrade, omnibus-gitlab will still be attempting to upgrade the database only to 10.x, while 11.x will be available for users to manually upgrade to. To manually update PostgreSQL to version 11.x , the pg-upgrade command has to be passed with a version argument (-V or --target-version) Database settings | GitLab

GitLabのversionが12.8以降だと-Vオプションが使えるようなので、使えない方はまずまず12.8以降にUpdateする必要がありそうです。
-Vオプションが使えるようになったら下記のコマンドを叩きます。

$ sudo gitlab-ctl pg-upgrade -V 11

これでUpdateできるようになったはずです。

$ sudo gitlab-ctl stop
$ sudo yum -y install gitlab-ee 

これで起動すればOKなはずだと思っていたのですが、Postgresのversionを上げたので下記のコマンドを叩く必要があります。 これはOmnibus GitLabの再設定をするものです。

$ sudo gitlab-ctl reconfigure

再設定しないと起動は成功するのですが、issueが見れなかったりmerge requestで500番が帰ってくるので注意です。

f:id:chikesomnia:20200603223817p:plain
error500