Ubuntu 12.04 + rvm + Gitlab 2.7.0 インストールメモ

さくらVPSのUbuntu12.04にGitlabをインストールしてみたのでメモっておく。

rvmのインストール(sudoでインストール)とRuby 1.9.2のインストール

$ sudo curl -L https://get.rvm.io | sudo bash -s stable

/etc/profile.d/rvm.shができ、/usr/local/rvmあたりにパスが通るようになる。一旦ログアウトして

$ rvm -v

でバージョンを確認。

Ruby 1.9.2のインストールの前に、ユーザのグループにrvmを追加(-aオプションをつけとかないと現在所属しているグループを上書きしちゃいそうなので注意。ちなみにhironemuはユーザ名)

$ sudo usermod -aG rvm hironemu

一旦再ログイン。

$ id
uid=1000(hironemu)・・・略・・・1001(rvm)

こんなかんじでrvmグループが追加されてたらOK。
ここでRuby 1.9.2のインストール

$ rvm ruby 1.9.2
$ ruby -v
ruby 1.9.2p320 (2012-04-20 revision 35421) [x86_64-linux]

はいった。

Gitlabのインストールのメモ

以下のインストールページをそのままやっていく。ここでは、ちょっと変えたところとやちょっとしたメモ、ちゃんと動かなかったところの説明だけ書いていく。

https://github.com/gitlabhq/gitlabhq/blob/stable/doc/installation.md
(このページはどんどん更新されていくのかな。もしかして記事をみたタイミングでは2.7.0のインストール方法ではなくなっているかも)

bundle execとかinstallとかしているところ

$ sudo -u gitlab -H bundle install --without development test --deployment

このへんからsudoでgitlabとしてbundleを実行しているけど、rvmへのパスが通ってなくて実行できない(sudoのデフォルト設定ではresetenvとかされてるかららしい)
そこで、bundleコマンドはgitlabユーザにsuしてから実行した。
上の例だとこんな感じ。

$ bundle install --without development test --deployment

(/home/gitlabhq/gitlabhqにcdしてからね)

今思えば、sudoの「-i」オプションを指定するだけでよかったかも。

自分で編集するところ

Gitlabの設定
$ sudo -u gitlab cp config/gitlab.yml.example config/gitlab.yml

を実行したあと、config/gitlab.ymlを変更。変更するのはホスト名くらい。

# Web application specific settings
web:
  host: git.example.com # ホスト名を設定
  port: 80
  https: false

 Git Hosting configuration
git_host:
  admin_uri: git@localhost:gitolite-admin
  base_path: /home/git/repositories/
  host: git.example.com # ホスト名を設定
  git_user: git
  upload_pack: true
  receive_pack: true
  # port: 22

# 略・・
データベース接続情報の設定
$ sudo -u gitlab cp config/database.yml.example config/database.yml

を実行したあと、config/database.ymlを変更。

データベースの追加(MySQL
$ mysql  -u root -p
mysql> grant all privileges on gitlabhq_production.* to gitlabhq@localhost identified by 'ここはパスワード';
mysql> create database gitlabhq_production;
mysql> flush privileges;

GitlabのAdminユーザのログインIDとパスワード

「bundle exec rake gitlab:app:setup RAILS_ENV=production」 の実行結果にさり気なく出ている。

Administrator account created:

login.........admin@local.host
password......5iveL!fe

「/etc/init.d/gitlab」の修正

rvmを実行するには「/etc/profile.d/rvm.sh」を読み込んで置く必要があるのでsudoの「-i」オプションを渡す。

sudo -i -u gitlab sh -l -c "$CD_TO_APP_DIR > /dev/null 2>&1 && $CD_TO_APP_DIR && pwd && $START_DAEMON_PROCESS && $START_RESQUE_PROCESS"

($CD_TO_APP_DIRを2回実行してるのはなぜかちゃんとcdしてくれなかったから。なんとも微妙な対応。このへん誰か教えて。)

resqueがPauseする問題

/etc/init.d/gitlabをrestartしたときrequeがPauseになる

https://github.com/gitlabhq/gitlabhq/pull/984

「/etc/init.d/gitlab」の以下の部分をコメントアウト

  restart)
        echo -n "Restarting $DESC: "
        kill -USR2 `cat $PID`
        # ここと
        # kill -USR2 `cat $RESQUE_PID`
        echo "$NAME."
        ;;
  reload)
        echo -n "Reloading $DESC configuration: "
        kill -HUP `cat $PID`
        # ここ
        # kill -HUP `cat $RESQUE_PID`
        echo "$NAME."
        ;;

一旦stop, startしておく

ホーム画面にPushしたログが出てこない

テストプロジェクトを作って色々pushしたけど、ホーム画面にログが出てこなくて、以下のメッセージが表示される。

 Projects activity will be displayed here

その場合は、以下を実行

$ bundle exec rake gitlab:gitolite:update_hooks RAILS_ENV=production

参考:
https://groups.google.com/forum/?fromgroups#!topic/gitlabhq/8LVbZWCfczk%5B1-25%5D

(これをやってもローディング画像がくるくる回っているけど・・・。とりあえず、実行後にpushしたもののログはでてくるようになった)

終わり

とまあ、こんなかんじで。なんか抜けてるところもあるような気もしなくはないけど、メモってことで。
しかし、今回ハマったところもすでに本流にmergeされてたりするので、そのうち最初からちゃんと動くようになるでしょう。このメモはたった今(2012/08/11)同じようなことやってる人にしか役にたたないかもねー。