0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitLabバージョンアップ 17.7.7から18.3.1

Last updated at Posted at 2025-09-11

サーバのリプレースに伴うGitLabのバージョンアップ

OSが当初はCentOS7.9で、これをRockyLinux8にアップグレードした環境
GitLabはCentOS7でサポートされていた最終バージョンの17.7.7だった
OSをRockyLinux8.9にアップグレードして、OSの制限もなくなったのでGitLabも最新版にアップデートした記録です。

0. 準備

テスト環境にOSのインストール後から、本番環境と同じGitLabCEをインストールするところまでも参考として記録します
これは本筋の話ではないですが、OSアップグレード後のまっさらな環境にGitLabをインストールした作業も
今後の参考にできると備忘録的に記述しました。

$ sudo dnf install epel-release #epelリポジトリインストール
$ sudo dnf --enablerepo=epel group # epelリポジトリを使用
$ sudo nmcli connection down eno1 # IPアドレス固定に変更したのでネットワーク再起動
$ sudo nmcli connection up eno1
$ sudo systemctl stop firewalld # firewalldの停止
$ sudo systemctl disable firewalld # firewalldの自動起動停止
$ sudo setenforce 0 # SELinux一時停止

1. 本番環境と同じGitLabのインストールを行い環境準備

# 必要なパッケージのインストール
$ sudo dnf install -y curl policycoreutils openssh-server perl
# バージョンを指定したGitLabCEのインストール
$ sudo dnf install gitlab-ce-17.7.7
$ sudo gitlab-ctl reconfigure
$ sudo gitlab-rake gitlab:env:info # バージョン確認

バージョンを確認した際に「Go Version: unknown」が表示されるが、問題なし

GitLab 本体は Ruby on Rails で動いており、Go は必須ではありません。
Go 言語は GitLab の一部の周辺コンポーネント(例: Gitaly
、GitLab Workhorse など)で使われていますが、Omnibus パッケージ版の GitLab では 事前にビルド済みのバイナリが同梱 されているため、システムに Go がインストールされていなくても動作します。
そのため gitlab:env:info が「Go のバージョンを確認できない → unknown」と表示することがありますが、実害はありません。

2. アップデート手順

現在のバージョン確認

[tuti@localhost ~]$ sudo gitlab-rake gitlab:env:info
System information
System:		
Current User:	git
Using RVM:	no
Ruby Version:	3.2.5
Gem Version:	3.5.23
Bundler Version:2.5.11
Rake Version:	13.0.6
Redis Version:	7.0.15
Sidekiq Version:7.2.4
Go Version:	unknown

GitLab information
Version:	17.7.7
(以下略)

Upgrade Path(https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/) に従ったアップデートの実行

$ sudo yum install gitlab-ce-17.8.7 # 17.7.7 → 17.8.7
$ sudo gitlab-ctl reconfigure
$ sudo gitlab-ctl restart
$ sudo gitlab-rake gitlab:env:info|grep -A 1 "GitLab information"
GitLab information
Version:	17.8.7
# = = = = =
sudo yum install gitlab-ce-17.11.7 # 17.8.7 → 17.11.7   テスト環境はここから
Upgrade complete! If your GitLab server is misbehaving try running
  sudo gitlab-ctl restart
sudo gitlab-ctl reconfigure <=  不要だった
sudo gitlab-ctl restart   <=  不要だった
$ sudo gitlab-rake gitlab:env:info|grep -A 1 "GitLab information"
GitLab information
Version:	17.11.7  
# = = = = =
sudo yum install gitlab-ce-18.2.5 # 17.11.7 → 18.2.5
$ sudo gitlab-rake gitlab:env:info|grep -A 1 "GitLab information"
GitLab information
Version:	18.2.5
# = = = = = =
sudo yum install gitlab-ce-18.3.1 # 18.2.5 → 18.3.1
sudo yum install gitlab-ce であれば18.2.5 → 18.3.2  こちらを実行した
$ sudo gitlab-rake gitlab:env:info|grep -A 1 "GitLab information"
GitLab information
Version:	18.3.2

3. 補足:Upgrade Path に記載されていた注意点

(1) Potential PostgreSQL index corruption(glibc locale data)

対象: OS をアップグレードする場合のみ
glibc 2.28 以降で OS を上げると PostgreSQL のインデックスが壊れる可能性あり
今回の RockyLinux 8 (glibc 2.28) では OS アップグレードしないため不要
もし将来 OS をアップグレードする場合 → 事前に REINDEX 実施が必須

sudo gitlab-psql -d gitlabhq_production -c "REINDEX DATABASE gitlabhq_production;"

(2) OpenSSL v3 Upgrade

GitLab 17.7 で OpenSSL 1.1.1 → 3.0 に切り替わった
GitLab Omnibus パッケージに OpenSSL 3 が同梱されているため、OS に openssl3 パッケージを入れる必要はない
OS 側で openssl version を実行すると 1.1.1 が表示されるが、GitLab 内部は OpenSSL 3 を使用している

openssl version   # v1 系が表示される
openssl3 version  # v3 系を確認できる

v3系がOSになくても問題ありません

(3) Multi-node architectures: new encryption secrets introduced in 17.8

GitLab 17.8 から 新しい暗号化フレームワーク が導入され、gitlab-secrets.json にキーが追加される
マルチノード構成では全ノードで secrets.json を同期させる必要がある
今回は オムニバス単一ノード構成(シングルノード) のため、この対応は不要
シングルノード = GitLab アプリケーション(Rails, Sidekiq, Gitaly, DB, Redis, Nginx 等)が 1 台のサーバに同梱されて動作している構成
複数サーバで役割を分散(例: DB 専用, Redis 専用, 複数 Gitaly)していなければ シングルノード

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?