Capistrano::Aws
Installation
Add this line to your application's Gemfile:
gem 'capistrano3-aws'
And then execute:
$ bundle
Or install it yourself as:
$ gem install capistrano3-aws
Usage
in Capfile
:
require 'capistrano3-aws'
in config/deploy.rb
:
set :aws_profile, 'myapp'
set :aws_regions, %w(ap-northeast-1 us-east-1)
set :ec2_filters, -> {
[ { name: 'tag:Name', ["*#{fetch(:application)}-#{fetch(:ec2_stage)}"] },
{ name: 'tag:Stage', [fetch(:ec2_stage)] },
{ name: 'tag:Role', %w(app db web) },
{ name: 'instance-state-name', values: %w(running) }
]
}
task :set_instances do
hosts = instances.map(&:public_dns_name)
role :web, hosts
role :app, hosts
role :db, hosts.first
end
## Blue-Green Deploy
# deregister half of instances from ELB, then apply block, and register.
task :restart do
bluegreen(:web, 'elb-arn') do
execute :sudo, "restart rails"
loop do
begin
execute :curl, "-s http://localhost:3000/"
break
rescue
end
end
end
end
after :staging, :set_instances
in config/deploy/staging
:
set :ec2_stage, 'dev'
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/masarakki/capistrano3-aws.
License
The gem is available as open source under the terms of the MIT License.