zuntan02のはてなブログ

備忘録的なものです。時々職場の技術者ブログにも転記してますが、メインはこちらで。

【AmazonLinux】gitlabのバージョンアップ(8.10.0→9.0.2)メモ

zuntan02.hateblo.jp
この環境がふるくなってきたので最新化したら例によって苦しめられたのでメモ。

# Update前の状態を確認
gitlabのrootログインにて
[管理エリア]-[概要]-[Components]でバージョンを確認

GitLab 8.10.0
GitLab Shell 3.2.0
GitLab API v3
Git 2.7.4
Ruby 2.1.8p440
Rails 4.2.7
PostgreSQL 9.2.17

■Node.jsが入っていない環境だったのでインストール(ないと日本語化パッチ適用中にエラーになった)
# Node.jsのインストール
# 先にnvm(Node Version Manager)をインストールする
su -
cd ~
git clone https://github.com/creationix/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`

# パスを通す
. ~/.nvm/nvm.sh
nvm --version
# 0.33.1

# 以下を、~/.bashrc 等に追記して、起動時に読み込むようにしておく
vi ~/.bashrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm

# # nvmを最新版にしておく
# cd ~/.nvm && git pull origin master && git checkout `git describe --abbrev=0 --tags`

# Node.jsが入ってなかったのでインストールする
# インストールバージョン確認
nvm ls-remote
# 奇数バージョンは最新機能版、偶数バージョンは長期サポート版
nvm install v6.10.2

# 確認
node -v
# v6.10.2
■gitlabのバージョンが9.15未満の時、先にpostgreSQLをupgradeするのにひと手間必要
# gitlabのupdate
# 先にPostgreSQLの9.6.1化が必要だが、8.10にはgitlab-ctl pg-upgradeオプションが存在しない。
# まず8.16をかぶせた上で、pg-upgradeを行い、最終的に9.0.xに上げることにした。
# gitlab 8.16へupdate
cd /usr/local/src/
curl -LJO https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/6/gitlab-ce-8.16.0-ce.0.el6.x86_64.rpm/download

# gitlabのUpdate
rpm -Uvh gitlab-ce-*.rpm

# PostgreSQLのupdate
gitlab-ctl pg-upgrade

# 引き続きGitlab 9.0.x化
yum update gitlab-ce
# Updated:
#   gitlab-ce.x86_64 0:9.0.2-ce.0.el6

# そのまま日本語化パッチ適用
cd /tmp
git clone https://github.com/ksoichiro/gitlab-i18n-patch.git
ll gitlab-i18n-patch/patches/ | grep v9
# drwxr-xr-x 2 root root 4096 Mar 29 17:24 v9.0.0

cd /opt/gitlab/embedded/service/gitlab-rails
patch -p1 < /tmp/gitlab-i18n-patch/patches/v9.0.0/app_ja.patch

# 以下のメッセージはそのままEnter
The next patch would create the file config/locales/devise.ja.yml,
which already exists!  Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored
The next patch would create the file config/locales/ja.yml,
which already exists!  Assume -R? [n]
Apply anyway? [n]
Skipping patch.

# gitlab-crlを再起動
gitlab-ctl restart

# 確認
gitlab-ctl status

[管理エリア]-[概要]-[Components]でup-to-dateになっていることを確認

GitLab 9.0.2
GitLab Shell 5.0.0
GitLab Workhorse v1.4.2
GitLab API v4
Git 2.10.2
Ruby 2.3.3p222
Rails 4.2.8
postgresql 9.6.1

以上。