class AWSCarb::Services::Ec2
Attributes
instance[R]
Public Instance Methods
client(config)
click to toggle source
# File lib/aws-carb/services/ec2.rb, line 11 def client(config) @config = config @instance = nil ShellSpinner "# configuring ec2 session", false do begin @client = AWS::EC2.new(config[:ec2]) @client.regions[@config.find_with_context(:region, :ec2)] puts rescue => e puts "error: failed to create ec2 session, check that you're using a valid region!" die e end end end
create_instance()
click to toggle source
# File lib/aws-carb/services/ec2.rb, line 27 def create_instance instance = nil ShellSpinner "# creating instance", false do # FIXME: this is naff begin allowed_ec2_parameters = [ :count, :iam_instance_profile, :block_device_mappings, :virtual_name, :device_name, :ebs, :snapshot_id, :volume_size, :delete_on_termination, :volume_type, :iops, :no_device, :monitoring_enabled, :availability_zone, :image_id, :key_name, :key_pair, :security_groups, :security_group_ids, :user_data, :instance_type, :kernel_id, :ramdisk_id, :disable_api_termination, :instance_initiated_shutdown_behavior, :subnet, :private_ip_address, :dedicated_tenancy, :ebs_optimized, :associate_public_ip_address, ] ec2_config = {} allowed_ec2_parameters.each do |param| ec2_config[param] = @config[:ec2][param] if @config[:ec2][param] end @instance = @client.instances.create(ec2_config) rescue => e puts "# failed to create new ec2 instance:" die e end end puts ShellSpinner "# awaiting build completion", false do sleep 1 until @instance.status != :pending end puts ShellSpinner "# awaiting running state", false do sleep 1 until @instance.status == :running end puts end