gitlabのアップデートをさぼってたので更新してみました。
動作環境
CentOS7系
gitlab-ce
バージョンアップ方法
gitlabは、一気に最新のバージョンまでアップデートできず、特定のバージョンを経由して何度も更新しなければなりません。
どのバージョン経由で更新すればいいかは、下記のページの表のSupported upgrade pathの項目などを参考にするとよいでしょう。
CentOSの場合は、下記のコマンドでどのバージョンがリポジトリにあるか調べることができます。
yum --showduplicates search gitlab-ce
とりあえずこんな感じで作ってコンソールに流し込みました
yum -y update gitlab-ce-13.0.14-ce.0.el8.x86_64
yum -y update gitlab-ce-13.1.1-ce.0.el8.x86_64
yum -y update gitlab-ce-13.8.8-ce.0.el8.x86_64
yum -y update gitlab-ce-13.12.10-ce.0.el8.x86_64
yum -y update gitlab-ce-13.12.12-ce.0.el8.x86_64
yum -y update gitlab-ce-14.0.11-ce.0.el8.x86_64
yum -y update gitlab-ce-14.1.6-ce.0.el8.x86_64
yum -y update gitlab-ce
不具合その1 Unicorn
1回の更新にめちゃくちゃ時間がかかるので夜中に回しておいて、朝確認したのですが、どうも13.12.12までしか更新できていません。
手動でgitlab-ce-14.0.11-ce.0.el8.x86_64に更新してみると、以下のようなエラーが出ていました。
* unicorn['worker_processes'] has been deprecated since 13.10 and was removed in 14.0. Starting with GitLab 14.0, Unicorn is no longer supported and users must switch to Puma, following https://docs.gitlab.com/ee/administration/operations/puma.html.
Deprecations found. Please correct them and try again.
エラー文にあるURLがリンク切れになってしまって、詳細が良くわからなかったのですが、どうも、内部で使うシステムがunicornからPumaというのに変更になったらしく、unicorn系の設定があるとエラーになるようです。
/etc/gitlab/gitlab.rb を開いてunicorn[‘worker_processes’]の行をコメントアウトすることで更新することができるようになりました。
おそらく、更新時に自動で設定ファイルを書き換えて無効にしてくれていたらしいのですが、設定ファイルをカスタムしていて、コメント行を含め同じ設定が2行あったせいで更新システムの方でうまく対応できなかったものと思われます。
不具合その2 hashed storage
ということで続きの更新しようとしてみましたが、今度はこんなエラーが発生
gitlab preinstall: Legacy storage is no longer supported. Please migrate your data to hashed storage.
ストレージの形式がhashed strageというのに変わるので変更しろということのようです。
こちらを参考にして変換作業をする必要があるようです。
私は、yumからインストールしているのでOmnibus installationの方で
sudo gitlab-rake gitlab:storage:migrate_to_hashed
というコマンドを実行しました。
処理終了後続きのアップデートを行い、リポジトリにある最新版の14.4.1までアップデートできました。
不具合その3 pumaが起動しない
更新が終わったのでサイトにアクセスしてみましたが…
Whoops, something went wrong on our end.
起動に時間がかかるのでしばらく待って再度アクセスしてみましたがやっぱりだめ。
ということでGitLabを再起動してみたら
gitlab-ctl restart
中略
timeout: run: puma:
ふむ。pumaとやらが起動していない?
設定ファイルにpumaの設定がなければいけないらしいのですが、/etc/gitlab/gitlab.rb を見たらなぜか記述がない。
ということで、設定ファイルに下記を追記
puma['enable'] = true
ということで、congureとrestartをしてみて
gitlab-ctl reconfigure
gitlab-ctl restart
中略
ok: run: puma: (pid 130732) 0s
今度は起動したみたいです。
不具合その4 重い・・・すごく・・・重い
起動はできて見れるようにはなったのですが、非常に動きがもっさりしています。1画面開くのに30秒以上かかる感じ。
サーバーの状態を見てみたのですが、完全に物理メモリの容量を使い切っていています。
ということで、こちらのサイトの設定を参考にしてスリム化しました。
具体的な設定値は下記のようにしてみました
puma['enable']=true
puma['ha'] = false
puma['worker_timeout'] = 60
puma['worker_processes'] = 1
puma['min_threads'] = 2
puma['max_threads'] = 2
prometheus_monitoring['enable'] = false
sidekiq['max_concurrency'] = 10
sidekiq['min_concurrency'] = 1
3コアメモリ2Gのサーバーなのでさすがにもう厳しそうですが、一応、この設定で実用の範囲内の動作スピードを確保できました。
https://amzn.to/3k8Z6kz