魔法使いの卵

WEBエンジニアの卵の成長記録

最小構成のCapistranoでデプロイをしてみる

capistranoとは

Capistranoとは簡単にいうと、オープンソースで提供されている、複数のサーバ上で同時にスクリプトを実行するためのソフトウェアツールです。主に、同じ役割のサーバが複数台存在するような環境での自動化であったり、アプリケーションのデプロイ自動化に利用されています。

何がいいの

  • 複数サーバに対する処理をコマンド一回で出来るようになる
  • ほとんどの処理をCapistranoを介して行うように出来るので、運用がわかりやすくなる

rubyを導入する

raichel.hatenablog.com

bundlerを導入する

raichel.hatenablog.com

公開鍵秘密鍵は事前に準備しておく

  • capコマンド叩いてもエラーが返ってくるから忘れずに。

raichel.hatenablog.com

capistranoの導入

  • Gemfileに以下を追記

  • 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のバージョンの依存関係の影響範囲がどこまであるのかそもそも知らなくてはまってた。

参考元

Capistrano3 - Qiita