Class: Hyrb::Tasks::Provision::Rackspace

Inherits:
Hyrb::Task
  • Object
show all
Defined in:
lib/hyrb/tasks/provision.rb

Instance Attribute Summary

Attributes inherited from Hyrb::Task

#env, #pipeline

Instance Method Summary collapse

Methods inherited from Hyrb::Task

depends, #initialize, prompt, prompts, #run_before

Constructor Details

This class inherits a constructor from Hyrb::Task

Instance Method Details

#run(env) ⇒ Object



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/hyrb/tasks/provision.rb', line 59

def run(env)
  flavor_id = option_list(env.rackspace_cache, :flavors, 2) do |f, i|
    "#{i+1}: #{f.name} / id: #{f.id}"
  end.id

  image_id = option_list(env.rackspace_cache, :images, 1) do |f, i|
    "#{i+1}: #{f.name} / id: #{f.id}"
  end.id

  say "Creating Rackspace Server"
  server = env.rackspace_client.servers.create({
    name: env.environment.server_name,
    flavor_id: flavor_id,
    image_id: image_id,
  })

  env.environment.provider = 'rackspace'
  env.environment.server_id = server.id

  sleep(6) until server.reload.ready?
  env.environment.host = server.public_ip_address

  env.environment.save!

  say "Created Rackspace Server!", :green
  say "IP Address: #{server.public_ip_address} / ID: #{server.id}", :green
  say "\n\tssh root@#{server.public_ip_address}\n"
  beep
end