GitLabのバージョンアップをした話

概要

社内で9.0.xくらいのバージョンのGitLabを利用していました。

新規に追加された機能を利用したいという要望や、SaaSへ移行するタイミングが後ろにずれていったこと などがあり、最新バージョンに追随できるよう、バージョンアップを行いました。

なぜ

概要にも書きましたが、新規に追加された機能を利用したいというのが割と大きいです。アクセス権周りや、CI/CDに関する追加機能が利用できるようになるのがとても大きかったです。

スケジュール

まず、バージョンアップ自体が初めての経験だったので、公式マニュアルを見ながら、

  1. 9.x の最新バージョンにあげる
  2. 10.xの最新バージョンにあげ、11.xの最新バージョンにあげる

という2段階で行う計画を立てました。

実際の作業

下記の要領で行いました。

1回目

  1. 日程の調整を行い、作業日のアナウンス、

  2. データのバックアップ

  3. 9.x 最新バージョンへのアップデート

  4. 正常性の確認

2回目

  1. 日程の調整を行い、作業日のアナウンス、

  2. データのバックアップ

  3. 10.x 最新バージョンへのアップデート

  4. 正常性の確認

  5. 11.x 最新バージョンへのアップデート

  6. 正常性の確認

トラブルとか

9.x の最新版へアップデートした際、GitLab本体とは関係のないところでいくつかトラブルに見舞われました。

GitLabが動いているインスタンスIPアドレスが固定されておらず、 IPアドレス固定でアクセスしていた一部のジョブがコケるというのが一番大きく、 色々過去のことをよく知っている方と原因を探っていました。結局、 .ssh/config にIPアドレスが固定で記載されているという見つけにくいものが原因でした。

10.xへのアップデートは何事もなく終わり、11.xへのアップデート時に gitlab-ctl reconfigure が通らないという状況になり、 no implicit conversion of nil into String (#3189) · Issues · GitLab.org / omnibus-gitlab · GitLab を参考に gitlab.rb ファイルを修正し、 gitlab-ctl reconfigure を行い、正常にアップデートが完了しました。

どうなった

最新のGitLabを利用して開発が進められるようになりました。

また、GitLabでは、パッチバージョンについては、1つ前から最新へは無停止でのアップデートが可能なので、新しものが出るたびにきちんとアップデートしていけば、停止を伴う作業がなくなり、利用者の負担も無くせます。

より良い環境のために、きちんとバージョンアップはしていくことをお勧めします。