自習室

こもります

GitLabをアップグレード (6.4.3-to-6.8.1)

新登場 Upgrader

f:id:AMANE:20140511123145p:plain

GitLab v6.4 以降には Upgrading command があります。

GitLab.org / GitLab Community Edition | GitLab

ここにある通りの手順でアップグレードしてみます。

ちょっと日和った

一応かんたんに評判を調査してみたのですが、

という感じでどっこいどっこい。今後への期待を込めてUpgraderを使ってみることにしました。

ちなみに インストールの仕方も変わっていたという話

2014年のバレンタインデーに、三つのシンプルなインストール方法が用意されました。

GitLab Blog | GitLab is now simple to install

  1. Chef Solo を使う
    全然知らなかったのですが、GitLabを動かすために必要なパッケージ等を順序よくインストール等して、環境をセットアップしてくれるらしいです。すばらしい。

  2. インストール済のUbuntu/CentOS イメージを使う
    すごいゆとり!

  3. omnibus packageを使う
    これも全然分からないのですが、Ruby gem の依存関係を綺麗に再現してくれるらしいです。一個目との違いが分かりません。

まぁとにかく、(0からの)インストールは楽になったようなので、最悪アップグレードに失敗したら上の手法でやり直してみよう、と腹をくくりました。

環境

  • さくらのVPS 1G
  • OS: Ubuntu 12.04 LTS (x86_64) カスタムインストール済
  • もとのGitLab: v6.4.3

素直に手順を追ってみます

gitlabhq/doc/update/upgrader.md at master · gitlabhq/gitlabhq · GitHub

説明の通りに進めます。

途中、3分ほどターミナルが沈黙して焦りましたが、辛抱強く待っていたらプロセスが再開したので安心しました。

起動も無事できました。

アプリケーションステータスの確認と修正

sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production

で、正しく機能しているか確認が出来ます。一部赤くても実働上問題無いものもある様なのですが、気になったので修正していきます。

gitlab-shell が古い、と言われる

GitLab6.4をインストールした時点では、gitlab-shellは1.8.0でした。 Upgraderはgitlab-shellはアップグレードしてくれなかったのでしょうか。

cd /home/git/gitlab-shell
sudo -u git -H git fetch
sudo -u git -H git checkout master

これで最新(2014/05/10現在 1.9.4)になります。

init script が古い、と言われる

GitLabの起動スクリプトが古いらしいです。/etc/init.d/gitlab のことです。

f:id:AMANE:20140511123117p:plain

docを読め、と言われています。

gitlabhq/doc/install/installation.md at master · gitlabhq/gitlabhq · GitHub

initスクリプトをコピーしろ、とのことです。gitlab自体は最新の物をpullしてきているはずなので、素直に上書きします。これで、Init script up-to-date? ... yes となります。

satellites が作られていない、と言われる

f:id:AMANE:20140511123104p:plain

gitlabのSatellitesは、webのUI上でのマージリクエストを受け付けたりするための、テンポラリなリポジトリで、通常は本筋のリポジトリミラーリングした物、らしい。個人でしか使っていなかったので、気にしたことがなかったです。これも正常にしておきましょう。

参考:GitLab Structure
gitlabhq/doc/install/structure.md at master · gitlabhq/gitlabhq · GitHub

これは、出力されているコマンドをうち、Satellitesを作ることで対応。

# for GitLab 5.0 and later (uses git user)
sudo -u git -H bundle exec rake gitlab:satellites:create RAILS_ENV=production

こちらにも説明有り

Trouble Shooting Guide · gitlabhq/gitlab-public-wiki Wiki · GitHub

Satellitesのディレクトリにアクセス権限がない、と言われる

f:id:AMANE:20140511123132p:plain

gitさんがgitlab-shell に書き込めないよー、Satellites作れないよーと言われている。出力されているようにコマンドを打ち、アクセス権を与えます。

sudo chmod u+rwx,g+rx,o-rwx /home/git/gitlab-satellites

こちらにも説明有り

gitlabhq/doc/install/installation.md at master · gitlabhq/gitlabhq · GitHub

完了

あらためてアプリケーションのステータスをチェックして、オールグリーンになったことを確認します。

sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production

最後に再起動すれば完了です

sudo service gitlab restart
sudo service nginx restart

以上です