GitLabでバージョンアップしたので手順、注意点、データ移行、アップグレードの方法をまとめました。
目次
- GitLabのリストアは同一バージョンで行う
- GitLabのアップグレードパス
- GitLabの古いバージョンをアーカイブから取得
- GitLabのバージョンアップの具体的な手順
- GitLabをアップグレード中に出たエラーと解決策
- '/var/opt/gitlab' is not writable
- Failed asserting that mode permissions on "/var/opt/gitlab/git-data/repositories" is 2770
- no privileges were granted for "public" (two occurences)
- nothing provides policycoreutils-python needed
- Your version of PostgreSQL is no longer supported
- Detected Promethus version 1.x. Version 1.0 has been deprecated and support will removed in GitLab version 12.0
GitLabのリストアは同一バージョンで行う
GitLabで古いバージョンのバックアップ作成しました。
その後、GitLabの新しいバージョンでリストアしてみました。
1 2 3 4 5 6 7 8 |
$ sudo gitlab-rake gitlab:backup:restore BACKUP=xxxx Unpacking backup ... done GitLab version mismatch: Your current GitLab version (13.10.2) differs from the GitLab version in the backup! Please switch to the following version and try again: version: 7.8.1 |
バージョンミスマッチ。。。
調べてみるとこんな文言が見つかりました。
・https://docs.gitlab.com/ee/raketasks/backup_restore.html
You can only restore a backup to exactly the same version and type (CE/EE) of GitLab on which it was created. The best way to migrate your repositories from one server to another is through backup restore.
なんと全く同じバージョンで全く同じタイプのGitLabでないとバックアップ、リストアできないらしいです。
GitLabのアップグレードパス
GitLabのバージョンアップにはアップグレードパスの順番にアップデートする必要があります。
・https://docs.gitlab.com/ee/update/#upgrade-paths
例えば、GitLabのバージョン8.13.4をバージョン13.5.4にアップデートするには以下の順番でアップデートを行います。
8.13.4 ⇒
8.17.7 ⇒
9.5.10 ⇒
10.8.7 ⇒
11.11.8 ⇒
12.0.12 ⇒
12.1.17 ⇒
12.10.14 ⇒
13.0.14 ⇒
13.1.11 ⇒13.5.4
それぞれのチェックポイントのバージョンでは、インストール後のポストプロセスでデータベースやら設定なのでポストプロセスが実行されて、正しくアップグレードできるようです。
GitLabの古いバージョンをアーカイブから取得
アップグレードパスは分かりました。
そこで、アップグレードパスで必要となるGitLabの古いバージョンを取得してダウンロードしないといけません。
GitLab バージョン7.10.4より古いバージョンのアーカイブ
GitLab CE バージョン7.10.4以降のアーカイブ
・https://packages.gitlab.com/gitlab/gitlab-ce
GitLab EE バージョン7.10.4以降のアーカイブ
・https://packages.gitlab.com/gitlab/gitlab-ee
GitLabのバージョンアップの具体的な手順
GitLab CEバージョン7.8.1 から GitLab EEバージョン13.10.2にアップグレードする場合、アップグレードパスのチェックポイントとなるgitlabのrpmも事前にアーカイブから取得しておきます。
gitlab-7.8.1_omnibus-1.el7.x86_64.rpm
gitlab-ee-8.13.4-ee.0.el7.x86_64.rpm
gitlab-ee-8.17.7-ee.0.el7.x86_64.rpm
gitlab-ee-9.5.10-ee.0.el7.x86_64.rpm
gitlab-ee-10.8.7-ee.0.el7.x86_64.rpm
gitlab-ee-11.11.8-ee.0.el7.x86_64.rpm
gitlab-ee-12.0.12-ee.0.el7.x86_64.rpm
gitlab-ee-12.1.17-ee.0.el7.x86_64.rpm
gitlab-ee-12.10.14-ee.0.el8.x86_64.rpm
gitlab-ee-13.0.14-ee.0.el8.x86_64.rpm
gitlab-ee-13.1.11-ee.0.el8.x86_64.rpm
gitlab-ee-13.10.2-ee.0.el8.x86_64.rpm
GitLabの7.8.1をインストールしてから、バックアップをリストアします。
1 2 3 |
# yum install -y gitlab-7.8.1_omnibus-1.el7.x86_64.rpm # gitlab-rake gitlab:backup:restore BACKUP=xxx |
このあと、順番にgitlabをバージョンアップします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# yum install -y gitlab-ee-8.13.4-ee.0.el7.x86_64.rpm # gitlab-ctl reconfigure # gitlab-ctl restart # yum install -y gitlab-ee-8.17.7-ee.0.el7.x86_64.rpm # gitlab-ctl reconfigure # gitlab-ctl restart # yum install -y gitlab-ee-9.5.10-ee.0.el7.x86_64.rpm # gitlab-ctl reconfigure # gitlab-ctl restart # yum install -y gitlab-ee-10.8.7-ee.0.el7.x86_64.rpm # gitlab-ctl reconfigure # gitlab-ctl restart # yum install -y gitlab-ee-11.11.8-ee.0.el7.x86_64.rpm # gitlab-ctl reconfigure # gitlab-ctl restart # yum install -y gitlab-ee-12.0.12-ee.0.el7.x86_64.rpm # gitlab-ctl reconfigure # gitlab-ctl restart # yum install -y gitlab-ee-12.1.17-ee.0.el7.x86_64.rpm # gitlab-ctl reconfigure # gitlab-ctl restart # yum install -y gitlab-ee-12.10.14-ee.0.el8.x86_64.rpm # gitlab-ctl reconfigure # gitlab-ctl restart # yum install -y gitlab-ee-13.0.14-ee.0.el8.x86_64.rpm # gitlab-ctl reconfigure # gitlab-ctl restart # yum install -y gitlab-ee-13.1.11-ee.0.el8.x86_64.rpm # gitlab-ctl reconfigure # gitlab-ctl restart # yum install -y gitlab-ee-13.10.2-ee.0.el8.x86_64.rpm # gitlab-ctl reconfigure # gitlab-ctl restart |
ただ、すんなりとは行かず、エラー出ます。
GitLabをアップグレード中に出たエラーと解決策
GitLabをアップグレード中に出たエラーと解決策をまとめました。
'/var/opt/gitlab' is not writable
バックアップをリストア中に出たワーニング、警告。
1 2 |
/var/opt/gitlab is not writable. Bundler will use `/tmp/bundler/home/unknown’ as your home directory temporarily. |
エラーじゃないので、スルー。
Failed asserting that mode permissions on "/var/opt/gitlab/git-data/repositories" is 2770
こんなエラーが出ました。
1 |
Failed asserting that mode permissions on "/var/opt/gitlab/git-data/repositories" is 2770 |
どうやら
/var/opt/gitlab/git-data/repositories の
所有権は git:git
パーミッションは 02770
である必要があるようです。
以下の方法で修正しておきます。
1 2 3 |
# chgrp git /var/opt/gitlab/git-data/repositories # chmod 02770 /var/opt/gitlab/git-data/repositories # gitlab-ctl reconfigure |
no privileges were granted for "public" (two occurences)
GitLab 7.8.1からGitLab 8.13.4にアップグレード中に以下のエラーが出ました。
1 2 3 |
psql:/var/opt/gitlab/backups/db/database.sql:22: ERROR: must be owner of extension plpgsql psql:/var/opt/gitlab/backups/db/database.sql:2931: WARNING: no privileges could be revoked for "public" (two occurences) psql:/var/opt/gitlab/backups/db/database.sql:2933: WARNING: no privileges were granted for "public" (two occurences) |
データベースの権限の問題なんでしょうか。
ここに修正方法が書かれていました。
・https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/472
cd /var/opt/gitlab/postgresql/data
Modify this file
/var/opt/gitlab/postgresql/data/postgresql.conf
find
listen_addresses = ''
Instead
listen_addresses = '*'
modify
/var/opt/gitlab/postgresql/data/pg_hba.conf
Add the most later in this file
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
Restart gitlab to take effect
gitlab-ctl restart
Enter the PostgreSQL command line
cd /opt/gitlab/embedded/bin
su gitlab-psql
./psql -h 127.0.0.1 gitlabhq_production
Gitlab users to modify the implementation of super rights
ALTER USER gitlab WITH SUPERUSER;
\q
この通りやってみると、エラーは消えました。
nothing provides policycoreutils-python needed
GitLab 9.5.10からGitLab 10.8.7にアップグレード中に以下のエラーが出ました。
1 2 3 4 5 6 |
# yum install -y gitlab-ee-10.8.7-ee.0.el7.x86_64.rpm gitlab_gitlab-ee gitlab_gitlab-ee-source Errror: Problem:conflicting requests nothing provides policycoreutils-python needed by gitlab-ee-10.8.7-ee.0.el7.x86_64 |
そこで以下のrpmをインストールしておきます。
1 |
# yum install -y policycoreutils-python-2.5-34.el7.x86_64.rpm |
Your version of PostgreSQL is no longer supported
GitLab 9.5.10からGitLab 10.8.7にアップグレード中に以下のエラーが出ました。
1 2 |
gitlab preinstall: Your version of PostgreSQL is no longer supported. Please upgrade your PostgreSQL version. gitlab preinstall: Check https://docs.gitlab.com/update/#upgrade-gitlab-10-0-or-newer for detail. |
PosgreSQLのバージョンが古いみたいなのでアップグレードします。
1 |
# gitlab-ctl pg-upgrade |
Detected Promethus version 1.x. Version 1.0 has been deprecated and support will removed in GitLab version 12.0
以下のエラーが出ました。
1 |
Detected Promethus version 1.x. Version 1.0 has been deprecated and support will removed in GitLab version 12.0 |
Promethusのバージョンが古いみたいなのでアップブレードします。
1 |
# gitlab-ctl prometheus-upgrade |
コメント
[…] ・https://urashita.com/archives/34223 […]