capistrano-getservers makes it easier for you to deploy to your EC2
instances. By supplying a Hash to the get_servers
method,
capistrano-getservers connects to EC2 and retrieves all instances with
matching tags.
Add this line to your application's Gemfile:
gem 'capistrano-getservers'
And then execute:
$ bundle
Or install it yourself as:
$ gem install capistrano-getservers
Ruby Gems
gem 'capistrano'
gem 'fog'
Environment variables
export AWS_SECRET_ACCESS_KEY=''
export AWS_ACCESS_KEY_ID=''
In your capistrano script:
get_servers(:db, 'us-east-1', {'app' => 'app_name', 'cluster' => 'cluster', 'environment' => 'environment' ... })
In your capistrano script:
set :tags, ENV['TAGS'] || {}
cli_tags = parse(tags)
get_servers(:role, region, cli_tags)
Then, via the command line:
$ cap staging deploy TAGS=key1:value1,key2:value2,key3:value3...
You can pass nil
as the second parameter to have capistrano-getservers
default to the us-east-1
region.
All servers will receive the role 'web' unless you specify a different
role using the get_servers
method.
Example: get_servers(:role, 'us-east-1', {'deploy' => 'some value', 'app' => 'some_value'})
Version 1.0.2:
- Added region support for Getservers. Had to change the function get_servers for this, so it's now: get_servers(:role,'region',tags)
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request