def create name, image, instance_type, options = {}
client_opts = {}
client_opts[:launch_configuration_name] = name
client_opts[:image_id] = image_id_opt(image)
client_opts[:instance_type] = instance_type
client_opts[:block_device_mappings] = options[:block_device_mappings] if
options.key?(:block_device_mappings)
client_opts[:instance_monitoring] = instance_monitoring_opt(options) if
options.key?(:detailed_instance_monitoring)
client_opts[:kernel_id] = options[:kernel_id] if options[:kernel_id]
client_opts[:key_name] = key_name_opt(options) if options[:key_pair]
client_opts[:ramdisk_id] = options[:ramdisk_id] if options[:ramdisk_id]
client_opts[:security_groups] = security_groups_opt(options) if
options.key?(:security_groups)
client_opts[:user_data] = user_data_opt(options) if options[:user_data]
client.create_launch_configuration(client_opts)
LaunchConfiguration.new(name,
:image_id => client_opts[:image_id],
:instance_type => client_opts[:instance_type],
:config => config)
end