Skip to content

Commit

Permalink
removed yml
Browse files Browse the repository at this point in the history
  • Loading branch information
Tom Wilson committed Dec 29, 2009
1 parent c280ed1 commit de885d7
Show file tree
Hide file tree
Showing 6 changed files with 55 additions and 49 deletions.
Empty file added config/hugo.yml.example
Empty file.
67 changes: 35 additions & 32 deletions lib/hugo/app_server.rb
Expand Up @@ -5,11 +5,22 @@ class Hugo::AppServer
DEFAULT_ZONE = 'us-east-1c'
DEFAULT_IMAGE_ID = 'ami-1515f67c'
DEFAULT_KEY_NAME = 'ec2-keypair'
DEFAULT_COOKBOOK = 'git://github.com/twilson63/hugo-cookbooks.git'

attr_accessor :name, :uri, :type, :zone, :image_id,
:key_name, :db, :lb, :instances,
:port, :ssl, :application, :cloud
:port, :ssl, :application, :cookbook,
:github_url, :publickey, :privatekey,
:gem_list, :package_list, :run_list

def initialize
self.zone = DEFAULT_ZONE
self.image_id = DEFAULT_IMAGE_ID
self.key_name = DEFAULT_KEY_NAME
self.instances = 1
self.cookbook = DEFAULT_COOKBOOK
end

def database(name, &block)
database = Hugo::Database.instance
database.instance_eval(&block)
Expand All @@ -28,14 +39,6 @@ def balancer(&block)
self.lb = balancer.deploy
self.lb
end

def initialize
self.zone = DEFAULT_ZONE
self.image_id = DEFAULT_IMAGE_ID
self.key_name = DEFAULT_KEY_NAME
self.instances = 1

end


def deploy
Expand Down Expand Up @@ -75,8 +78,6 @@ def create_ec2
end

def setup_ec2
hugo_config = YAML.load_file("config/hugo.yml")

commands = []
commands << 'sudo apt-get update -y'
commands << 'sudo apt-get install ruby ruby1.8-dev libopenssl-ruby1.8 rdoc ri irb build-essential git-core xfsprogs -y'
Expand All @@ -89,52 +90,54 @@ def setup_ec2
commands << 'sudo gem source -a http://gems.github.com'
commands << 'sudo gem install chef-deploy --no-ri --no-rdoc'
commands << 'sudo gem install git --no-ri --no-rdoc'
commands << "git clone #{hugo_config['git']} ~/hugo-repos"
commands << "git clone #{self.cookbook} ~/hugo-repos"
# Setup base role
dna = { :run_list => ["role[web-base]"],
:package_list => hugo_config['package_list'],
:gem_list => hugo_config['gem_list'],
:git => hugo_config['git'],
:github => hugo_config['github'],
:access_key => Ec2::ACCESS_KEY,
:secret_key => Ec2::SECRET_KEY,
:apache => hugo_config['apache']
:package_list => self.package_list,
:gem_list => self.gem_list,
:git => self.cookbook,
:github => { :url => self.github_url,
:publickey => self.publickey,
:privatekey => self.privatekey},
:access_key => Hugo::Ec2::ACCESS_KEY,
:secret_key => Hugo::Ec2::SECRET_KEY,
:apache => { :listen_ports => [self.port, self.ssl] }

}

commands << 'sudo chef-solo -c /home/ubuntu/hugo-repos/config/solo.rb -j /home/ubuntu/dna.json'

Ec2.find(instance_id).ssh(commands, dna)
Hugo::Ec2.find(instance_id).ssh(commands, dna)
end

def deploy_ec2
hugo_config = YAML.load_file("config/hugo.yml")
app_config = YAML.load_file("config/#{application}.yml")

commands = []
#commands << "git clone #{@@hugo_config['git']} ~/hugo-repos"
commands << "cd hugo-repos && git fetch && git merge"
commands << 'sudo chef-solo -c /home/ubuntu/hugo-repos/config/solo.rb -j /home/ubuntu/dna.json'

dna = { :run_list => app_config['run_list'],
:package_list => app_config['package_list'] || {},
:gem_list => app_config['gem_list'] || {},
dna = { :run_list => self.run_list,
:package_list => self.package_list || {},
:gem_list => self.gem_list || {},
:application => self.application,
:customer => self.cloud,
:customer => self.name,
:database => {
:uri => self.db.uri,
:user => self.db.user,
:password => self.db.password },
:web => { :port => self.port, :ssl => self.ssl },
:git => hugo_config['git'],
:github => hugo_config['github'],
:access_key => Ec2::ACCESS_KEY,
:secret_key => Ec2::SECRET_KEY,
:app => app_config['app'] || nil
:git => self.cookbook,
:github => { :url => self.github_url,
:publickey => self.publickey,
:privatekey => self.privatekey},
:access_key => Hugo::Ec2::ACCESS_KEY,
:secret_key => Hugo::Ec2::SECRET_KEY,
:app => self.application || nil
}

lb.instances.each do |i|
Ec2.find(i).ssh(commands, dna)
Hugo::Ec2.find(i).ssh(commands, dna)
end
end

Expand Down
6 changes: 3 additions & 3 deletions lib/hugo/rds.rb
Expand Up @@ -7,7 +7,7 @@ class Rds
INSTANCE_CLASS = "db.m1.small"
ZONE = "us-east-1c"

attr_accessor :db, :uri, :server, :user, :pwd, :instance_class,
attr_accessor :db, :uri, :server, :user, :password, :instance_class,
:zone, :size, :status, :create_time

def initialize(options={})
Expand All @@ -16,7 +16,7 @@ def initialize(options={})
@server = options[:server] || options["DBInstanceIdentifier"]
@db = options[:name] || options["DBName"]
@user = options[:user] || options["MasterUsername"]
@pwd = options[:password] || "****"
@password = options[:password] || "****"
@size = options[:size] || options["AllocatedStorage"] || DEFAULT_SIZE
@instance_class = options[:instance_class] || options["DBInstanceClass"] || INSTANCE_CLASS
@zone = options[:zone] || options["AvailabilityZone"] || ZONE
Expand All @@ -38,7 +38,7 @@ def create
:db_instance_class => self.instance_class,
:engine => "MySQL5.1",
:master_username => self.user,
:master_user_password => self.pwd,
:master_user_password => self.password,
:db_name => self.db,
:availability_zone => self.zone) unless self.create_time

Expand Down
15 changes: 8 additions & 7 deletions spec/lib/hugo/balancer_spec.rb
Expand Up @@ -4,13 +4,13 @@

it "should be valid" do
block = lambda do
cloud "my_cloud" do |c|
c.instances = 1
c.balancer do end
c.database "testapp" do |db|
db.server = "serverx"
db.user = "test_user"
db.password = "test_password"
cloud "my_cloud" do
@instances = 1
balancer do end
database "testapp" do
@server = "serverx"
@user = "test_user"
@password = "test_password"
end
end
end
Expand All @@ -34,6 +34,7 @@
lb = Hugo::Balancer.instance
lb.name = "myserver"
lb.deploy.should be_a_kind_of(Hugo::Elb)

end

before(:each) do
Expand Down
14 changes: 7 additions & 7 deletions spec/lib/hugo/database_spec.rb
Expand Up @@ -11,13 +11,13 @@
it "should be valid" do

block = lambda do
cloud "my_cloud" do |c|
c.instances = 1
c.balancer do end
c.database "testapp" do |db|
db.server = "serverx"
db.user = "test_user"
db.password = "test_password"
cloud "my_cloud" do
@instances = 1
balancer do end
database "testapp" do
@server = "serverx"
@user = "test_user"
@password = "test_password"
end
end
end
Expand Down
2 changes: 2 additions & 0 deletions spec/lib/hugo_spec.rb
Expand Up @@ -19,6 +19,8 @@
end.should be_true
end



it "should deploy infrastructure" do
block = lambda do
cloud "mycloud" do
Expand Down

0 comments on commit de885d7

Please sign in to comment.