CapistranoでVagrantにデプロイする
Ruby製のデプロイツール「Capistrano」を使い、Vagrant上にデプロイまでを行いました。
開発環境
・capistrano 3.10.0
・デプロイ元: ローカルのMac
・デプロイ先: Vagrant(CentOS7)
Capistrano導入
作業ディレクトリでGemfile作成。
$ bundle init
Gemfileにcapistrano記述。
group :development do gem "capistrano", "~> 3.10" end
Capistranoインストール。
$ bundle install
Capistrano導入確認。
$ bundle list Gems included by the bundle: * capistrano (3.10.0)
Capistrano設定
Capistranoの雛形作成。
STAGESのオプションはなくても問題ないです。
$ bundle exec cap install STAGES=develop,staging,production
Capistranoの雛形確認。
$ tree . ├── Capfile ├── config │ ├── deploy │ │ ├── develop.rb │ │ ├── production.rb │ │ └── staging.rb │ └── deploy.rb │ ├── lib │ └── capistrano │ └── tasks └── log └── capistrano.log
config/deploy.rbを以下のように修正。
# デプロイするリポジトリ set :repo_url, "git@github.com:takedajs/TabColor.git" # デプロイする場所(vagrant上) set :deploy_to, "/var/www/html/takedajs"
config/deploy/develop.rbを以下のように修正。
開発環境へのデプロイなので、develop.rbだけ修正します。
server "[example.com]", user: "vagrant", roles: %w{app web}, my_property: :my_value # デフォルトのままだとpasswordはvagrantです。 set :ssh_options, { password: "[sshする時のパスワード]" }
Vagrantにデプロイ
デプロイ実行。
$ bundle exec cap develop deploy
正しくデプロイされたかどうかVagrant上で確認。
currentにアクセスすると、指定リポジトリのファイルを確認できました。
[vagrant@localhost takedajs]$ ls current releases repo revisions.log shared [vagrant@localhost current]$ ls README.md REVISION background.js icons manifest.json popup tab_red.jpg
まとめ
Capistranoは細かい設定を行うことができますが、今回はデプロイするための最低限だけ設定しました。 次はCapistranoとSlackを連携して、デプロイ結果をSlackに通知してみたいと思います。
参考
GitHub - capistrano/capistrano: Remote multi-server automation tool