GitLabをアップグレード (6.4.3-to-6.8.1)
新登場 Upgrader
GitLab v6.4 以降には Upgrading command があります。
GitLab.org / GitLab Community Edition | GitLab
ここにある通りの手順でアップグレードしてみます。
ちょっと日和った
一応かんたんに評判を調査してみたのですが、
という感じでどっこいどっこい。今後への期待を込めてUpgraderを使ってみることにしました。
ちなみに インストールの仕方も変わっていたという話
2014年のバレンタインデーに、三つのシンプルなインストール方法が用意されました。
GitLab Blog | GitLab is now simple to install
Chef Solo を使う
全然知らなかったのですが、GitLabを動かすために必要なパッケージ等を順序よくインストール等して、環境をセットアップしてくれるらしいです。すばらしい。omnibus packageを使う
これも全然分からないのですが、Ruby gem の依存関係を綺麗に再現してくれるらしいです。一個目との違いが分かりません。
まぁとにかく、(0からの)インストールは楽になったようなので、最悪アップグレードに失敗したら上の手法でやり直してみよう、と腹をくくりました。
環境
素直に手順を追ってみます
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 のことです。
docを読め、と言われています。
gitlabhq/doc/install/installation.md at master · gitlabhq/gitlabhq · GitHub
initスクリプトをコピーしろ、とのことです。gitlab自体は最新の物をpullしてきているはずなので、素直に上書きします。これで、Init script up-to-date? ... yes
となります。
satellites が作られていない、と言われる
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のディレクトリにアクセス権限がない、と言われる
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
以上です