takedajs ログ

備考録

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

CapistranoのdeployタスクをVagrantマシンに適用するまで - Qiita