すばらしく簡単に UbuntuにRailsをデプロイする方法が紹介されてあったので試してみる。
http://wiki.slicehost.com/doku.php?id=automated_rails_install_and_deployment_with_deprec_capistrano
localはMacのLeopard、Ubuntuの6.06.2をParallelsにインスコ。
Leopardの準備
Leopardの初期インスコcapistranoが2.0なので
gem uninstall -v 2.0.0
gem install capistrano -v 1.4.1
1.系に変更
gem install deprec
echo “require ‘deprec/recipes’” >> ~/.caprc
deprecというcapistranoのレシピ集をインスコ
export PATH=~/bin:/opt/local/bin:/opt/local/sbin/:$PATH
sudo port install imagemagick
gem install rmagick
imagemagickが入ってないのでまず Macportをインスコ(入れなくてもいいけど私には必要)
cd ~
rails hoge
cd hoge
script/generate scaffold post
rake db:migrate
とりあえずmigrateまでした状態のアプリを作る
Ubuntuの準備
ifconfig (parallelsってOSインスコごとにmacアドレスを変えてくれる上にUbuntuはデフォルトのインスコだとDHCPサーバーを参照してipアドレス決めるのでipアドレスのチェック。変えたい場合はsudo vi /etc/network/interfacesをいじる)
sudo vi /etc/apt/sources.list #1個の所の#を消す。viの使い方はこちら
sudo apt-get install openssh-server
svnの準備とconfig/deplyの編集(すべてローカル)
アジャイル命。設定の手間を省くためにassemblaを利用。
cd ~/hoge
deprec –apply-to . –name hoge –domain hoge.com
config/deploy.rbを作る
set :application, “wwwww”
set :repository, “http://svn2.assembla.com/svn/hoge” ”"の中はassemblaで登録したやつ
set :svn_username, “svnuser”
set :svn_password, “secretpassword”
set :sudo, ‘sudo -p Password:’ を config/deploy.rbの最後に追加
config/deploy.rbを編集
set :apache_server_name, domain
set :apache_conf, “/usr/local/apache2/conf/apps/#{application}.conf”
set :apache_ctl, “/etc/init.d/httpd”
set :apache_proxy_port, 8000
set :apache_proxy_servers, 4
set :apache_proxy_address, “127.0.0.1″
apacheの設定は上記の#を切り取る
set :mongrel_servers, apache_proxy_servers
set :mongrel_port, apache_proxy_port
set :mongrel_address, apache_proxy_address
set :mongrel_environment, “production”
set :mongrel_config, “/etc/mongrel_cluster/#{application}.conf”
mongrelの設定は上記の#を切り取る
デプロイ(すべてローカル)
cap install_rails_stack
cap install_php 必要ないけど私がphpmyadminが好きなため
cap setup
cap deploy_with_migrations
cap restart_apache
うまくいってれば立ち上がってる。
ローカル編集後
svn commit -m ‘I fixed a bug!’
cap disable_web
cap deploy_with_migrations
cap enable_web
前のバージョンに戻す方法等は cap show_tasksとかsubversionの解説を見るのが吉。