最小構成のCapistranoでデプロイをしてみる
capistranoとは
Capistranoとは簡単にいうと、オープンソースで提供されている、複数のサーバ上で同時にスクリプトを実行するためのソフトウェアツールです。主に、同じ役割のサーバが複数台存在するような環境での自動化であったり、アプリケーションのデプロイ自動化に利用されています。
何がいいの
- 複数サーバに対する処理をコマンド一回で出来るようになる
- ほとんどの処理をCapistranoを介して行うように出来るので、運用がわかりやすくなる
rubyを導入する
bundlerを導入する
公開鍵秘密鍵は事前に準備しておく
- capコマンド叩いてもエラーが返ってくるから忘れずに。
capistranoの導入
Gemfileに以下を追記
- gem 'capistrano', '~> 3.4.0'
bundleで設定した項目を入れる
- rbenv exec bundle install
※更新の場合
- rvenv exec bundle update
projectのルートディレクトリ配下にdeployディレクトリを作る
- capstranoのファイル等を1箇所にまとめるため
- 今回は例として/home/vagrantにrel/deployをつくった
capistaranoを展開させる
- cap install
自動でつくられる mkdir -p config/deploy create config/deploy.rb create config/deploy/staging.rb create config/deploy/production.rb mkdir -p lib/capistrano/tasks
- 構成としてはこのようなかんじ
deploy ├─ Capfile #使用するライブラリなどを記述 ├─ config │ ├─ deploy │ │ ├─production.rb #本番用サーバの設定やタスクを記述 │ │ └─staging.rb #ステージングサーバの設定やタスクを記述 │ └─deploy.rb #デプロイ処理を記述 └─ lib └─capistrano └─tasks
設定ファイルの編集
- アプリケーション名と git リポジトリの指定
- $ vi config/deploy.rb
set :application, 'my_app_name' set :repo_url, 'git@example.com:me/my_repo.git' set :deploy_to, '/home/vagrant/rel' //ここがデプロイ先を指定している
デプロイサーバの指定(6,7,8行目あたりを編集)
- $ vi config/deploy/staging.rb
- server '192.168.33.10', user: 'vagrant'
以下コマンドで vagrant にアップロードされます。 $ cap staging deploy
おもったこと
- 最小構成の情報が見つけられなかった(くやしいからつくった)
- そもそもruby on railsの情報ばっか(今回は君じゃない)
- rubyのバージョンの依存関係の影響範囲がどこまであるのかそもそも知らなくてはまってた。
参考元