当ブログで利用しているサーバ(さくらのVPS 4G)が色々同居させており、gitoriousのバッチがたまに負荷をかけ重くなってしまっていたので余っていたさくらのVPS 1Gに移しました。
どうせ移すんだったらと思い、今までrvm, passenger(apache2), daemontoolsだった構成をrbenv, passenger(standalone), supervisordに移行しました。
gitoriousの主な構成は下記の通り
- OS: Ubuntu 12.04LTS
- Ruby: 1.8.7-p370
- 実行ユーザ: git
- リポジトリパス: /home/git/repos
- Gitoriousルート: /var/www/gitorious
以前はapache2 + passengerで動作させていたのでwebの実行ユーザはwww-dataのままで、git-daemonなどの実行ユーザはgitという感じでしたが、今回はgitユーザに全て統一させました。
目次
rbenv + ruby-buildへの移行
まず、rvmからrbenv, ruby-buildへ移行します。手順は下記のページで書かれている通りに実行すれば大丈夫です。
実際に入れたRubyのバージョンは1.8.7-p370なので、コレを入れておきます。
rbenv install 1.8.7-p370 |
gemでモジュールをインストールした際にrehashする手間を省くため、rbenv-rehashを下記の通りにインストールします。
rbenv で gem を使った時に rbenv rehash しなくて良くする – sorry, unimplemented:
これで、gemを入れた段階で自動的にrehash作業も行なってくれます。
Gitoriousのインストール
cd /var/www git clone git://gitorious.org/gitorious/mainline.git gitorious |
gitoriousの細かな設定については下記のgistを参考にしました。
Gitorious installation on Ubuntu 12.04 — Gist
実際には移行だったのでまるまるインストールってわけではなく、/var/www/gitoriousディレクトリとmysqlのdumpを移行させた程度です。
Bundlerでモジュール管理
gem install bundler cd /var/www/gitorious bundle install --deployment |
Passenger StandaloneでGitoriousを起動してみる
cd /var/www/gitrious RAILS_ENV=production passenger start |
Supervisord経由で起動する
最近はdaemontoolsではなくsupervisordで運用することが増えました。今回もsupervisordを使ってみます。設定は下記のようにしています。
なんか、調べているうちにGodというRuby製のプロセス監視ツール?があるらしいのでどっかで使ってみたいところ。
起動スクリプトはこんな感じ
pushしたらgitoriousコマンドが無いと言われる
.ssh/environmetに下記のように設定をする。
かなり端折ってて分かりにくいですが、rbenvに慣れていなくてsupervisordなどから実行させるのにはまりました。gitoriousはpassengerのstandalone版で動作させnginxをリバースプロキシとして置いて運用させています。とりあえず、今はこんな感じです。