GitLab 5.0 を 5.1 にアップデート

2013-04-23 (火)
カテゴリー :
Git
gitlab5.1released
Pocket

Gitlab 5.1 Released

GitLab 5.1 がリリースされたのでアップデートしてみました。アプリケーションサーバが Unicorn から Puma に変更になったということで、アップデートめんどくさそうだなとか思ってたんですがそうでもなかったです。あとログインにメールアドレスではなく、ユーザ名も使えるようになったようです。これは便利。
自分の環境は公式にあるのと違い、 nginx ではなく Apache を使っていたりするので、その違いをメモしつつの備忘録です。この記事は 2013/04/23 現在のものです。時間が経ってからの閲覧にはご注意ください。

新規インストールについては、前回の記事を御覧ください。(5.1版も追記しました)

環境

詳細は前回記事を見てもらうとして、ざっくりと今回関係ありそうなところは
・debian squeeze(6.0.4)64bit
・ウェブサーバは Apache でリバースプロキシ設定
・gitlab 本体は 5-1-stable ブランチ

サービスストップ

git ユーザになって sudo で作業。まずは gitlab サービスを停めます。

sudo su - git
sudo /etc/init.d/gitlab stop

gitlab-shell のアップデート

gitlab-shell も v1.3.0 になってたので先にアップデートしておきます。

cd /home/git/gitlab-shell
git pull

gitlab のアップデート

gitlab 本体のアップデートです。

cd /home/git/gitlab
git fetch
git checkout 5-1-stable

Unicorn から Puma へ変更

Ruby のアプリケーションサーバが Unicorn から Puma というものに変更になったようです。なので Puma 用の config を新たに作成します。

cp config/puma.rb.example config/puma.rb
vim config/puma.rb

今回は前回の Unicorn 同様、 socket を使ったものではなく Listen を使いたいので以下のようにコメントアウトします。 Listen ポートに関しては記述しないとデフォルトの 9292 で起動するようです。

- bind “unix://#{application_path}/tmp/sockets/gitlab.socket”
+ #bind “unix://#{application_path}/tmp/sockets/gitlab.socket”

ポートが変わったので apache 側の設定も変更します。

sudo vim /etc/apache2/sites-available/gitlab.example.com

変更はこの2箇所。

- ProxyPass / http://127.0.0.1:3000/
+ ProxyPass / http://127.0.0.1:9292/
- ProxyPassReverse / http://127.0.0.1:3000/
+ ProxyPassReverse / http://127.0.0.1:9292/

設定を再読み込み。

sudo /etc/init.d/apache2 reload

gitlab の再セットアップ

ライブラリの追加や更新、 DB のマイグレーションを行うために下記を実行します。ちなみに1行目は DB に MySQL を使っている場合です。 PostgreSQL の方は逆に mysql を指定してください。(withoutオプションなので)

bundle install --without development test postgres --deployment
bundle exec rake db:migrate RAILS_ENV=production
bundle exec rake migrate_merge_requests RAILS_ENV=production

3行目の merge request に関するマイグレート時、下記のようなメッセージが出ます。

Since 5.1 old merge request serialization logic was replaced with a better one.
It makes old merge request diff invalid for GitLab 5.1+
* * *
This will rebuild commits/diffs info for existing merge requests.
You will lose merge request diff if its already merged.
Do you want to continue (yes/no)?

アップデートに伴って merge request 部分に大きな変更があったようで、これまでに完了した merge request に関するコミットや差分が見られなくなる(消える?)けど、もちろんいいよね!ってことっぽいです。適当に実験した結果、オープン状態の merge request に関しては消えることはなかったので、 closed になっているものでもう一度確認しなくちゃならないものがあるなら、先にそれを解消してからの方がよさそうです。でも closed なものだし、いっそ諦めるのも手です(男らしく)。というわけで、自分はまだ全然使っていないので、得意げに yes です。

起動スクリプトの更新

起動スクリプトも新しいものに入れ替えます。

sudo rm /etc/init.d/gitlab
sudo curl --output /etc/init.d/gitlab https://raw.github.com/gitlabhq/gitlab-recipes/5-1-stable/init.d/gitlab
sudo chmod +x /etc/init.d/gitlab

チェック

最後にアプリケーションのチェックコマンドを打っておきます。

bundle exec rake gitlab:check RAILS_ENV=production

ここで前回同様 Sidekiq が起動してないエラーが出ていたので、下記コマンドを実行しておきます。

bundle exec rake sidekiq:start RAILS_ENV=production

そして起動。

sudo /etc/init.d/gitlab start

おわりに

リリースの少し前から、「もうすぐアップデートがあるらしい」「UnicornからPumaに変更されてる」などの情報は耳にしていたので、アップデートが複雑だったら最初から入れ直しになるかなとか思っていたのですが、実際はこの程度の作業というかほとんどいじらずにすんで良かったです。まだそれほど運用はしていないので、今後問題が起こるかもしれませんその時はその時で。

Pocket

1 Comment

Leave a comment

※ 本サイトのコメントは承認制です。
※ コメント送信後すぐには表示されない可能性がありますのでご注意ください。

twitter : @krengt

[PR]

人気の記事