GitLabのアップデート (2020年5月版)

さて、別バージョンのGitLabもアップデートしてみましょうか。こちらは現在11.11.0-ee.0.el7で動作しています。

作業手順自体は前回のものを参考に。

# yum update
読み込んだプラグイン:fastestmirror, langpacks


置換:
  iwl7265-firmware.noarch 0:22.0.7.0-69.el7    urw-fonts.noarch 0:2.4-16.el7

失敗:
  gitlab-ee.x86_64 0:11.11.0-ee.0.el7          gitlab-ee.x86_64 0:12.10.6-ee.0.el7

完了しました!

あれ、コケました。仕方ないので11.11系統で最新にしてからの二段階アップデートを試みます。

# yum list --showduplicates gitlab-ee

## 略

gitlab-ee.x86_64    11.10.7-ee.0.el7    gitlab_gitlab-ee
gitlab-ee.x86_64    11.10.8-ee.0.el7    gitlab_gitlab-ee
gitlab-ee.x86_64    11.11.0-ee.0.el7    gitlab_gitlab-ee
gitlab-ee.x86_64    11.11.1-ee.0.el7    gitlab_gitlab-ee
gitlab-ee.x86_64    11.11.2-ee.0.el7    gitlab_gitlab-ee
gitlab-ee.x86_64    11.11.3-ee.0.el7    gitlab_gitlab-ee
gitlab-ee.x86_64    11.11.4-ee.0.el7    gitlab_gitlab-ee
gitlab-ee.x86_64    11.11.5-ee.0.el7    gitlab_gitlab-ee
gitlab-ee.x86_64    11.11.7-ee.0.el7    gitlab_gitlab-ee
gitlab-ee.x86_64    11.11.8-ee.0.el7    gitlab_gitlab-ee
gitlab-ee.x86_64    12.0.0-ee.0.el7     gitlab_gitlab-ee
gitlab-ee.x86_64    12.0.1-ee.0.el7     gitlab_gitlab-ee
gitlab-ee.x86_64    12.0.2-ee.0.el7     gitlab_gitlab-ee

## 略

gitlab-ee.x86_64    12.10.5-ee.0.el7    gitlab_gitlab-ee
gitlab-ee.x86_64    12.10.6-ee.0.el7    gitlab_gitlab-ee

ふむ、ではいったん11.11.8-ee.0.el7まで上げましょう。

# yum install gitlab-ee-11.11.8-ee.0.el7

## 略

gitlab Reconfigured!
Restarting previously running GitLab services
ok: run: alertmanager: (pid 4714) 1s
ok: run: gitaly: (pid 5860) 1735199s
ok: run: gitlab-monitor: (pid 4731) 0s
ok: run: gitlab-workhorse: (pid 4691) 2s
ok: run: logrotate: (pid 4745) 1s
ok: run: nginx: (pid 4757) 0s
ok: run: node-exporter: (pid 4771) 1s
ok: run: postgres-exporter: (pid 4778) 0s
ok: run: postgresql: (pid 5881) 1735200s
ok: run: prometheus: (pid 4787) 0s
ok: run: redis: (pid 5883) 1735200s
ok: run: redis-exporter: (pid 4802) 0s
ok: run: sidekiq: (pid 4809) 0s
ok: run: unicorn: (pid 4825) 0s

     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/


Upgrade complete! If your GitLab server is misbehaving try running
  sudo gitlab-ctl restart
before anything else.
If you need to roll back to the previous version you can use the database
backup made during the upgrade (scroll up for the filename).

  検証中                  : gitlab-ee-11.11.8-ee.0.el7.x86_64                                                                                                                                                                            1/2
  検証中                  : gitlab-ee-11.11.0-ee.0.el7.x86_64                                                                                                                                                                            2/2

更新:
  gitlab-ee.x86_64 0:11.11.8-ee.0.el7

完了しました!

OKです。では、最新版へ。

# yum update

gitlab preinstall: It seems you are upgrading from major version 11 to major version 12.
gitlab preinstall: It is required to upgrade to the latest 12.0.x version first before proceeding.
gitlab preinstall: Please follow the upgrade documentation at https://docs.gitlab.com/ee/policy/maintenance.html#upgrade-recommendations
error: %pre(gitlab-ee-12.10.6-ee.0.el7.x86_64) scriptlet failed, exit status 1
Error in PREIN scriptlet in rpm package gitlab-ee-12.10.6-ee.0.el7.x86_64
gitlab-ee-11.11.8-ee.0.el7.x86_64 was supposed to be removed but is not!
  検証中                  : gitlab-ee-11.11.8-ee.0.el7.x86_64                                                                                                                                                                            1/2
  検証中                  : gitlab-ee-12.10.6-ee.0.el7.x86_64                                                                                                                                                                            2/2

失敗:
  gitlab-ee.x86_64 0:11.11.8-ee.0.el7                                                                                   gitlab-ee.x86_64 0:12.10.6-ee.0.el7

完了しました!

あれ、コケました。

エラー文内のリンクを見てみると、12.0.4 -> 12.0.12とあるのでどうもいったん12.0.4で打ち止めしないといけない模様。

# yum list --showduplicates gitlab-ee

## 略

gitlab-ee.x86_64    12.4.8-ee.0.el7    gitlab_gitlab-ee
gitlab-ee.x86_64    12.5.0-ee.0.el7    gitlab_gitlab-ee

## 略

では12.4.8-ee.0.el7にしましょう。

# yum install gitlab-ee-12.4.8-ee.0.el7

## 略

Running handlers:
Running handlers complete
Chef Client finished, 2/734 resources updated in 18 seconds
gitlab Reconfigured!
Restarting previously running GitLab services
ok: run: alertmanager: (pid 10225) 1s
ok: run: gitaly: (pid 9335) 73s
ok: run: gitlab-exporter: (pid 10242) 0s
ok: run: gitlab-workhorse: (pid 10244) 1s
ok: run: grafana: (pid 10253) 0s
ok: run: logrotate: (pid 10270) 0s
ok: run: nginx: (pid 10276) 1s
ok: run: node-exporter: (pid 10284) 0s
ok: run: postgres-exporter: (pid 10290) 1s
ok: run: postgresql: (pid 8452) 349s
ok: run: prometheus: (pid 10299) 0s
ok: run: redis: (pid 8781) 327s
ok: run: redis-exporter: (pid 10314) 1s
ok: run: sidekiq: (pid 10323) 0s
ok: run: unicorn: (pid 10329) 0s

     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/


Upgrade complete! If your GitLab server is misbehaving try running
  sudo gitlab-ctl restart
before anything else.
If you need to roll back to the previous version you can use the database
backup made during the upgrade (scroll up for the filename).

  検証中                  : gitlab-ee-12.4.8-ee.0.el7.x86_64                                                                                                                                                                             1/2
  検証中                  : gitlab-ee-11.11.8-ee.0.el7.x86_64                                                                                                                                                                            2/2

更新:
  gitlab-ee.x86_64 0:12.4.8-ee.0.el7

完了しました!

OKです。

今度こそ最新版へ。

# yum update

## 略

Running handlers:
Running handlers complete
Chef Client finished, 2/772 resources updated in 21 seconds
gitlab Reconfigured!
Restarting previously running GitLab services
ok: run: alertmanager: (pid 14477) 0s
ok: run: gitaly: (pid 13580) 70s
ok: run: gitlab-exporter: (pid 14495) 1s
ok: run: gitlab-workhorse: (pid 14497) 0s
ok: run: grafana: (pid 14510) 0s
ok: run: logrotate: (pid 14524) 1s
ok: run: nginx: (pid 14534) 0s
ok: run: node-exporter: (pid 14545) 1s
ok: run: postgres-exporter: (pid 14551) 0s
ok: run: postgresql: (pid 12674) 260s
ok: run: prometheus: (pid 14563) 1s
ok: run: redis: (pid 13029) 242s
ok: run: redis-exporter: (pid 14578) 0s
ok: run: sidekiq: (pid 14585) 0s
ok: run: unicorn: (pid 10329) 973s, want down

     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/


Upgrade complete! If your GitLab server is misbehaving try running
  sudo gitlab-ctl restart
before anything else.
If you need to roll back to the previous version you can use the database
backup made during the upgrade (scroll up for the filename).

  検証中                  : gitlab-ee-12.10.6-ee.0.el7.x86_64                                                                                                                                                                            1/2
  検証中                  : gitlab-ee-12.4.8-ee.0.el7.x86_64                                                                                                                                                                             2/2

更新:
  gitlab-ee.x86_64 0:12.10.6-ee.0.el7

完了しました!

Ok、行きました!

Gtilabのアップデート完了(2020/5)
Gtilabのアップデート完了(2020/5)

管理画面でも12.10.6-eeと表示されているのでOKです。


GitLabはありがたいことに簡単には壊れないですね。アップデートに失敗しても現行バージョンを維持しますし、今のところやり直しも効いています。

過去アップデートしたことがあってノウハウも多少はあるせいか、わりとサクッと上げられるイメージになりつつあります。

あまりバージョンに乖離が生まれてしまうと危険ですが、とりあえず段階的にアップデートすれば何とかなっている感じです。

とはいえ、現時点ではWikiとかCI/CD辺りは使いこなせていないのでその辺りで影響があるのかは不明です(もしかしたら気付いていないかたまたま回避できているだけの可能性もないことはない)。

この記事を書いた人

アバター

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。