Skip to content

tongueroo/cloud_info

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CloudInfo

Summary

Assumes you're using engineyard's amazon could. Allows you to use capistrano deployments to engineyard's amazon cloud without having to update your capistrano deploy.rb every time you add in instances in their gui.

Install

sudo gem install cloud_info --source http://gemcutter.org

Set up your ~/.ey-cloud.yml file. Set up your ~/.ssh/id-rsa-flex-key private key.

Usage

in your deploy.rb

require 'cloud_info'

task :production do
  ey_env_name = "prod1" # this is the environment name in EY's gui interface
  cloud_info = CloudInfo.new(ey_env_name, :private_key => "~/.ssh/id-rsa-flex-key")

  role :db, cloud_info.app_master, :primary => true
  # web and app slices
  cloud_info.apps.each do |info|
    role :web, info[1]
    role :app, info[1], :sphinx => true
  end

  # utility slices
  cloud_info.utils.each do |info|
    role :app, info[1], :sphinx => true
  end

  set :environment_database, Proc.new { production_database }
  set :user,          'deploy'
  set :runner,        'deploy'
  set :rails_env,     'production'
end

To look at what the hosts contain use script/console. cloud_info.apps, cloud_info.utils just holds a hash of keys and dns_names.

./script/console

require "cloud_info"
cloud_info = CloudInfo.new("prod1")
pp cloud_info.apps
{
  "prod1_app0" => '123.456.789.123',
  "prod1_app1" => 'ec-123.456.789.123.whatever'
}

pp cloud_info.hosts # shows all hosts
{
  "prod1_app0" => '123.456.789.123', # app_master
  "prod1_app1" => 'ec-123.456.789.123.whatever', # app
  "prod1_db0" => 'ec-123.456.789.123.whatever', # db_master
  "prod1_db1" => 'ec-123.456.789.123.whatever', # db_slave
  "prod1_util0" => 'ec-123.456.789.123.whatever', # util instance, name util0
}

Compatibility

Tested with Ruby 1.8.6.

Thanks

About

easily update the servers for ey cloud capistrano deployments

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages