画像

http://masutaka.net/ 以下の静的なhtmlはGitHubのprivateリポジトリで
管理しており、変更があったらrsyncでコピーしてました。

あまり変更しないのでそんなに困ってませんでしたが、ちょっとダサいの
とCapistrano3を使ってみたかったので、エイヤッと導入しました。

https://github.com/capistrano/capistrano の通りにGemfileに

gem ‘capistrano’, ‘~> 3.2.0’
を追加して、以下を実行しました。
$ bundle exec cap install

このようなファイルが自動生成されます。

Capfile
config
├── deploy
│   ├── production.rb
│   └── staging.rb
└── deploy.rb

ファイル名を以下のように変更しました。melodyはVagrantのVMです。

Capfile
config
├── deploy
│   ├── prod.rb
│   └── melody.rb
└── deploy.rb

ファイルの内容はこんな感じ

Capistrano3からdeploy:setup不要になったので、初回から以下のコマンド
でOKです。

# to masutaka.net
$ bundle exec cap prod deploy

# to vagrant
$ bundle exec cap melody deploy

/var/www/vhosts/masutaka.net以下にデプロイされます。

current -> /var/www/vhosts/masutaka.net/releases/20140502163850/
logs/
releases/
repo/
revisions.log
shared/

nginxのrootを/var/www/vhosts/masutaka.net/current/webrootにします。

chalowディレクトリは前述のCapistranoの設定により、以下のような
sharedディレクトリへのシンボリックリンクになります。

current/webroot/chalow -> /var/www/vhosts/masutaka.net/shared/webroot/chalow

詳細は割愛しますが、chalow+rsyncで上記sharedディレクトリにコピーし
ています。