GitLab-CEをDebian 11上で動かしているので、Debian 12へアップグレードするとともに、GitLabを引き継ぐ。
Debian 11上での作業
現在のGitLabのバージョンを確認する。
% sudo gitlab-rake gitlab:env:info System information System: Debian 11 Current User: git Using RVM: no Ruby Version: 3.1.5p253 Gem Version: 3.5.9 Bundler Version:2.5.9 Rake Version: 13.0.6 Redis Version: 7.0.15 Sidekiq Version:7.1.6 Go Version: unknown GitLab information Version: 17.0.0 Revision: d29650c9a04 Directory: /opt/gitlab/embedded/service/gitlab-rails DB Adapter: PostgreSQL DB Version: 14.11 URL: https://hogehoge.jp HTTP Clone URL: https://hogehoge.jp/some-group/some-project.git SSH Clone URL: git@hogehoge.jp:some-group/some-project.git Using LDAP: no Using Omniauth: yes Omniauth Providers: GitLab Shell Version: 14.35.0 Repository storages: - default: unix:/var/opt/gitlab/gitaly/gitaly.socket GitLab Shell path: /opt/gitlab/embedded/service/gitlab-shell Gitaly - default Address: unix:/var/opt/gitlab/gitaly/gitaly.socket - default Version: 17.0.0 - default Git Version: 2.44.0.gl2
バックアップコマンドを実行する。バックアップは /var/opt/gitlab/backups以下に生成される。
% sudo gitlab-backup create BACKUP=dump % sudo ls -1 /var/opt/gitlab/backups dump_gitlab_backup.tar
続いて、/etc/gitlabの設定ファイルは上記のバックアップに含まれないので別途バックアップをとる。
% sudo gitlab-ctl backup-etc % sudo ls -1 /etc/gitlab/config_backup gitlab_config_1715939071_2024_05_17.tar
Debian 11から12へアップグレードする
以下のファイルをbullseye用からbookworm用に書き換える。
- /etc/apt/sources.list
- /etc/apt/sources.list.d/gitlab_gitlab-ce.list
/etc/apt/sources.listの中身
deb http://ftp.jp.debian.org/debian/ bookworm main contrib non-free deb-src http://ftp.jp.debian.org/debian/ bookworm main contrib non-free deb http://security.debian.org/debian-security bookworm-security main contrib non-free deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free deb http://ftp.jp.debian.org/debian/ bookworm-updates main contrib non-free deb-src http://ftp.jp.debian.org/debian/ bookworm-updates main contrib non-free # proposed-update deb http://ftp.jp.debian.org/debian/ bookworm-proposed-updates main contrib non-free
/etc/apt/sources.list.d/gitlab_gitlab-ce.listの中身
deb https://packages.gitlab.com/gitlab/gitlab-ce/debian/ bookworm main deb-src https://packages.gitlab.com/gitlab/gitlab-ce/debian/ bookworm main
アップグレード
% sudo apt update % sudo apt upgrade % sudo apt dist-upgrade
再起動する。
% sudo reboot
Debian 12上での作業
Debian 12ではいくつか変更があるため、以下のようなエラーがでる。
% sudo apt update ~省略~ W: https://packages.gitlab.com/gitlab/gitlab-ce/debian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. W: https://packages.gitlab.com/gitlab/gitlab-ee/debian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. N: Repository 'Debian bookworm' changed its 'non-free component' value from 'non-free' to 'non-free non-free-firmware' N: More information about this can be found online in the Release notes at: https://www.debian.org/releases/bookworm/amd64/release-notes/ch-information.html#non-free-split
変更その1:パッケージの指定にnon-free-firmwareを追加する。
変更その2:apt-keyの利用が非推奨になり、GPGを利用するように言われる。
/etc/apt/sources.listの中身にnon-free-firmwareを追加する。
deb http://ftp.jp.debian.org/debian/ bookworm main contrib non-free non-free-firmware deb-src http://ftp.jp.debian.org/debian/ bookworm main contrib non-free non-free-firmware deb http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware deb http://ftp.jp.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware deb-src http://ftp.jp.debian.org/debian/ bookworm-updates main contrib non-free non-free-firmware # proposed-update deb http://ftp.jp.debian.org/debian/ bookworm-proposed-updates main contrib non-free non-free-firmware
続いて、非推奨となったapt-keyから切り替える。いろいろやり方はあるみたいだけれども以下の方針にする。
- リポジトリのGPG鍵は/usr/share/keyringsに保存する。
- /etc/sourcelist.d/以下のファイルに[signed-by=/usr/share/keyrings/GPG鍵のファイル名]を追加し、鍵との対応を示す。
GitLab:Update keys after expiry extensionの記述を参考にGPG鍵を作成する。以下のコマンドを実行し、GPG鍵を/usr/share/keyrings/gitlab-ce.gpgとして保存する。
% curl -fsSL https://packages.gitlab.com/gpg.key | sudo gpg --dearmor -o /usr/share/keyrings/gitlab-ce.gpg % ls -1 /usr/share/keyrings debian-archive-bookworm-automatic.gpg debian-archive-bookworm-security-automatic.gpg debian-archive-bookworm-stable.gpg debian-archive-bullseye-automatic.gpg debian-archive-bullseye-security-automatic.gpg debian-archive-bullseye-stable.gpg debian-archive-buster-automatic.gpg debian-archive-buster-security-automatic.gpg debian-archive-buster-stable.gpg debian-archive-keyring.gpg debian-archive-removed-keys.gpg gitlab-ce.gpg
/etc/apt/sources.list.d/gitlab_gitlab-ce.listの中身を以下のように書き換える。
deb [signed-by=/usr/share/keyrings/gitlab-ce.gpg] https://packages.gitlab.com/gitlab/gitlab-ce/debian/ bookworm main deb-src [signed-by=/usr/share/keyrings/gitlab-ce.gpg] https://packages.gitlab.com/gitlab/gitlab-ce/debian/ bookworm main
以上でエラーが発生しなくなる。
% sudo apt update ヒット:1 http://security.debian.org/debian-security bookworm-security InRelease ヒット:2 http://deb.debian.org/debian bookworm InRelease ヒット:3 http://deb.debian.org/debian bookworm-updates InRelease ヒット:4 http://deb.debian.org/debian bookworm-proposed-updates InRelease ヒット:5 https://packages.gitlab.com/gitlab/gitlab-ce/debian bookworm InRelease パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています... 完了 状態情報を読み取っています... 完了
Gitlabについて、特に問題なくDebian 12へのアップグレードとともにGitLab-CEも引き継がれたみたい。
$ dpkg -l | grep gitlab ii gitlab-ce 17.0.0-ce.0 amd64 GitLab Community Edition (including NGINX, Postgres, Redis)
現在のGitLabのバージョンを確認する。
% sudo gitlab-rake gitlab:env:info System information System: Debian 12 Current User: git Using RVM: no Ruby Version: 3.1.5p253 Gem Version: 3.5.9 Bundler Version:2.5.9 Rake Version: 13.0.6 Redis Version: 7.0.15 Sidekiq Version:7.1.6 Go Version: unknown GitLab information Version: 17.0.0 Revision: d29650c9a04 Directory: /opt/gitlab/embedded/service/gitlab-rails DB Adapter: PostgreSQL DB Version: 14.11 URL: https://hogehoge.jp HTTP Clone URL: https://hogehoge.jp/some-group/some-project.git SSH Clone URL: git@hogehoge.jp:some-group/some-project.git Using LDAP: no Using Omniauth: yes Omniauth Providers: GitLab Shell Version: 14.35.0 Repository storages: - default: unix:/var/opt/gitlab/gitaly/gitaly.socket GitLab Shell path: /opt/gitlab/embedded/service/gitlab-shell Gitaly - default Address: unix:/var/opt/gitlab/gitaly/gitaly.socket - default Version: 17.0.0 - default Git Version: 2.44.0.gl2