Capistranoのインストールと設定、プラグインの紹介をします。
Capistranoのインストール
bundle initコマンドでGemfileを作成します。
1 | $ bundle init |
以下のGemfileが作成されます。
1 | $ cat Gemfile |
GemfileにCapistranoを定義します。
1 | group :development do |
bundle installコマンドでインストールします。
1 | $ bundle install |
Capistranoの設定
Capistranoがインストールできたので、設定をしていきます。
cap installコマンドで雛形を作成します。
1 | bundle exec cap install |
config/deploy.rb
とconfig/deploy/{production, staging}.rb
が作成されているので適宜編集します。
config/deploy.rb
1 | # config valid only for current version of Capistrano |
- application: アプリケーション名
- repo_url: リポジトリのURI
- branch: デプロイ対象のブランチ
- deploy_to: サーバーのアプリケーションのディレクトリ
- scm: git or svn
- format: ログのフォーマット
- keep_releases: 過去にデプロイしたアプリケーションを何世代保持するか
デプロイするサーバーを定義します。
事前に鍵認証でsshログインできるようにしておくととスムーズです。
config/deploy/production.rb
1 | role :app, %w{shoyan@server001.example.jp shoyan@server002.example.jp} |
Capistranoでデプロイする
以下のコマンドでデプロイします。
1 | bundle exec cap production deploy |
便利なCapistranoプラグイン
Capistranoには様々なプラグインがあります。
ここでは私が使っているプラグインを紹介します。
capistrano-github-releases
デプロイ時にタグをつけたり、PRにリリースコメントをつけれます。
https://github.com/linyows/capistrano-github-releases
capistrano/slack_notification
デプロイ時にSlackに通知できるようになります。
https://github.com/linyows/capistrano-slack_notification
capistrano_banner
デプロイ時にASCIIアートを設定できます。
また、productionにデプロイする前に確認をしてくれるようになります。
https://github.com/holysugar/capistrano_banner
capistrano-bundler
デプロイ時にbundle installを実行できるようになります。
https://github.com/capistrano/bundler
capistrano3-unicorn
デプロイ時にunicornのコマンドを実行できるようになります。
https://github.com/tablexi/capistrano3-unicorn
###capistrano-withrsync
rsyncでデプロイしてくれるプラグインです。
デプロイするファイルが大きい場合に便利です。