Skip to content

Commit

Permalink
fixes needed to complete bootstrapping process
Browse files Browse the repository at this point in the history
  • Loading branch information
pperezrubio committed Feb 10, 2012
1 parent 2876917 commit f706094
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions .chef/plugins/knife/hatch.rb
Expand Up @@ -268,13 +268,14 @@ def run
print "\n#{ui.color("Waiting for sshd", :magenta)}" print "\n#{ui.color("Waiting for sshd", :magenta)}"


ssh_address = server.dns_name ssh_address = server.dns_name
public_dns_name = server.dns_name
if ( config[:ip] || (config[:ensure_public_ip] and server.public_ip_address == server.private_ip_address) ) if ( config[:ip] || (config[:ensure_public_ip] and server.public_ip_address == server.private_ip_address) )
public_ip = set_public_ip(connection, server, config[:ip]) public_ip = set_public_ip(connection, server, config[:ip])
ssh_address = public_ip
if public_ip.nil? if public_ip.nil?
ui.error("Unable to assign a public IP to instance #{server.id}") ui.error("Unable to assign a public IP to instance #{server.id}")
exit 1 exit 1
end end
public_dns_name = public_ip
ssh_address = public_ip ssh_address = public_ip
print "\n#{ui.color("\nServer got public IP #{public_ip}", :magenta)}" print "\n#{ui.color("\nServer got public IP #{public_ip}", :magenta)}"
end end
Expand All @@ -296,8 +297,8 @@ def run
if vpc_mode? if vpc_mode?
puts "#{ui.color("Subnet ID", :cyan)}: #{server.subnet_id}" puts "#{ui.color("Subnet ID", :cyan)}: #{server.subnet_id}"
else else
puts "#{ui.color("Public DNS Name", :cyan)}: #{server.dns_name}" puts "#{ui.color("Public DNS Name", :cyan)}: #{public_dns_name}"
puts "#{ui.color("Public IP Address", :cyan)}: #{server.public_ip_address}" puts "#{ui.color("Public IP Address", :cyan)}: #{ssh_address}"
puts "#{ui.color("Private DNS Name", :cyan)}: #{server.private_dns_name}" puts "#{ui.color("Private DNS Name", :cyan)}: #{server.private_dns_name}"
end end
puts "#{ui.color("SSH Key", :cyan)}: #{server.key_name}" puts "#{ui.color("SSH Key", :cyan)}: #{server.key_name}"
Expand Down Expand Up @@ -375,7 +376,7 @@ def bootstrap_for_node(server, ssh_address)


bootstrap.run bootstrap.run


Net::SSH.start(server.public_ip_address, config[:ssh_user], :keys => [config[:identity_file]]) do |ssh| Net::SSH.start(ssh_address, config[:ssh_user], :keys => [config[:identity_file]]) do |ssh|
puts "#{ui.color("Creating admin user", :cyan)}" puts "#{ui.color("Creating admin user", :cyan)}"
ssh.exec! "cd /tmp/chef-hatch && sudo rake hatch:init['hatch']" ssh.exec! "cd /tmp/chef-hatch && sudo rake hatch:init['hatch']"


Expand All @@ -391,7 +392,7 @@ def bootstrap_for_node(server, ssh_address)


# Create knife.rb # Create knife.rb
puts "#{ui.color("Creating knife.rb", :cyan)}" puts "#{ui.color("Creating knife.rb", :cyan)}"
setup_knife_config(server) setup_knife_config(server, ssh_address)


puts "#{ui.color("Uploading all cookbooks", :cyan)}" puts "#{ui.color("Uploading all cookbooks", :cyan)}"
`knife cookbook upload --all` `knife cookbook upload --all`
Expand Down Expand Up @@ -425,7 +426,7 @@ def bootstrap_for_node(server, ssh_address)
end end


puts "#{ui.color("Finishing hatching and restarting chef-client", :cyan)}" puts "#{ui.color("Finishing hatching and restarting chef-client", :cyan)}"
Net::SSH.start(server.public_ip_address, config[:ssh_user], :keys => [config[:identity_file]]) do |ssh| Net::SSH.start(ssh_address, config[:ssh_user], :keys => [config[:identity_file]]) do |ssh|
ssh.exec! "cd /tmp/chef-hatch && sudo rake hatch:finish['#{bootstrap.config[:chef_node_name]}','#{config[:run_list].join(' ')}','#{config[:environment]}']" ssh.exec! "cd /tmp/chef-hatch && sudo rake hatch:finish['#{bootstrap.config[:chef_node_name]}','#{config[:run_list].join(' ')}','#{config[:environment]}']"
ssh.exec! "sudo /etc/init.d/chef-client restart" ssh.exec! "sudo /etc/init.d/chef-client restart"
end end
Expand All @@ -446,7 +447,7 @@ def vpc_mode?
!!config[:subnet_id] !!config[:subnet_id]
end end


def setup_knife_config(server) def setup_knife_config(server, ssh_address)
cwd = File.expand_path('./') cwd = File.expand_path('./')
conf = <<-END_CONF conf = <<-END_CONF
log_level :info log_level :info
Expand All @@ -455,7 +456,7 @@ def setup_knife_config(server)
client_key '#{cwd}/.chef/hatch.pem' client_key '#{cwd}/.chef/hatch.pem'
validation_client_name 'chef-validator' validation_client_name 'chef-validator'
validation_key '#{cwd}/.chef/validation.pem' validation_key '#{cwd}/.chef/validation.pem'
chef_server_url 'http://#{server.public_ip_address}:4000' chef_server_url 'http://#{ssh_address}:4000'
cache_type 'BasicFile' cache_type 'BasicFile'
cache_options( :path => '#{cwd}/.chef/checksums' ) cache_options( :path => '#{cwd}/.chef/checksums' )
cookbook_path [ '#{cwd}/cookbooks' ] cookbook_path [ '#{cwd}/cookbooks' ]
Expand Down

0 comments on commit f706094

Please sign in to comment.