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)同じようなことやってる人にしか役にたたないかもねー。