Capstranoに挑戦する(2)
続き
Capistranoをインストール
$ sudo gem install capistrano
チェックアウトしたRailsアプリのフォルダで
$ capify .
すると、なんかファイルが作られる
config/deploy.rb を編集すればいいらしい
# リポジトリの場所 set :repository, "file:///home/{user_name}/svn/rails1/trunk" # デプロイ先 set :deploy_to, "/home/{user_name}/deploy/test1" # (たぶん)SSHログイン時のユーザ名 set :user, "{user_name}" # root権限で実行するか(trueにする意味がよくわからないが、 # デフォルトはtrueっぽい) set :use_sudo, false # よくわかってない。passengerの再起動はtask :restartでrestart.txtを置くことで行われるみたい namespace :deploy do [:start, :stop].each do |t| desc "#{t} task is a no-op with mod_rails" task t, :roles => :app do ; end end task :restart, :roles => :app, :except => { :no_release => true } do run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}" end end
/etc/apache2/sites-enabled/000-defaultを編集
DocumentRoot /home/{user_name}/deploy/test1/current/public
初回のみ。deploy先に必要なフォルダを作成している。このデプロイ先のなかでさらに世代管理してくれるらしい
[set :use_sudo, false]しとかないと、作られるフォルダはroot所有となる
$ cap deploy:setup
リポジトリから最新の環境を取得し、さらにproductionモードでマイグレーションまでしてくれる(この作業は:userが行うので、deploy:setupで作ったフォルダがrootさんのものだと、Permission deniedとか言われる。ハマった
$ cap deploy:cold
サーバが起動されるはずですが、なにも設定していないので当然ながら動かず。
手動でApacheを起動する
$ cap deploy:start $ sudo /etc/init.d/apache2 start
次に、ちょっとだけtrunkの中身を変更、コミットした上で稼働中のサーバにデプロイしてみる
コミットまでは省略
$ cap deploy
再起動までやってくれるみたい。ただ、マイグレーションは行ってくれない(当たり前か)
リポジトリにデータベースファイル(sqlite3使ってるので)も含まれてるので、deployしたところで古いのが消えてしまったようです
-> マイグレーションまでする場合は[cap deploy:cold]、ソースのとっかえだけなら[cap deploy]と覚えるといいそうな
参考ページ(お世話になりました)
- UbuntuにSubversionでも入れてバージョン管理でもしてみる(http://blog.riywo.com/2008/04/01/054421)
- ubuntu serverのインストール(http://www.lowlevellife.com/?p=151)
- バージョン管理ツールSubversionで使えるsvnコマンドのまとめ(http://it.kndb.jp/entry/show/id/659)
- Railsの一時ファイルをsubversionの管理から外すコマンド(http://gry.sakura.ne.jp/2009/06/02/rails%e3%81%ae%e4%b8%80%e6%99%82%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92subversion%e3%81%ae%e7%ae%a1%e7%90%86%e3%81%8b%e3%82%89%e5%a4%96%e3%81%99%e3%82%b3%e3%83%9e%e3%83%b3%e3%83%89/)
- Rails勉強会@東京 第15回(http://yugui.jp/articles/589)
- Capistrano(2)(http://d.hatena.ne.jp/garbagetown/20090518/1242662637)