class ImageBuilder::Builders::AWS::Base

Generic class doc comment

Attributes

access_key[RW]
ami_block_device_mappings[RW]
  • opt -

ami_description[RW]
ami_groups[RW]
ami_name[RW]
ami_product_codes[RW]
ami_regions[RW]
ami_users[RW]
ami_virtualization_type[RW]
associate_public_ip_address[RW]
availability_zone[RW]
enhanced_networking[RW]
iam_instance_profile[RW]
instance_type[RW]
launch_block_device_mappings[RW]
region[RW]
run_tags[RW]
secret_key[RW]
security_group_id[RW]
security_group_ids[RW]
source_ami[RW]
spot_price[RW]
spot_price_auto_product[RW]
ssh_port[RW]
ssh_private_ip[RW]
ssh_private_key_file[RW]
ssh_timeout[RW]
ssh_username[RW]
subnet_id[RW]
tags[RW]
temporary_key_pair_name[RW]
token[RW]
type[R]
user_data[RW]
user_data_file[RW]
vpc_id[RW]

Public Class Methods

default_block_device_mappings() click to toggle source
# File lib/image_builder/builders/aws_base.rb, line 53
def self.default_block_device_mappings
  [
    { device_name: '/dev/sdf', virtual_name: 'ephemeral0' },
    { device_name: '/dev/sdg', virtual_name: 'ephemeral1' },
    { device_name: '/dev/sdh', virtual_name: 'ephemeral2' },
    { device_name: '/dev/sdi', virtual_name: 'ephemeral3' }
  ]
end
default_launch_block_device_mappings() click to toggle source
# File lib/image_builder/builders/aws_base.rb, line 62
def self.default_launch_block_device_mappings
  [
    { device_name: '/dev/sdb', no_device: true },
    { device_name: '/dev/sdc', no_device: true },
    { device_name: '/dev/sdd', no_device: true }
  ]
end
new() click to toggle source
# File lib/image_builder/builders/aws_base.rb, line 47
def initialize
  @access_key = ENV['AWS_ACCESS_KEY_ID'] || ENV['AWS_ACCESS_KEY']
  @secret_key = ENV['AWS_SECRET_ACCESS_KEY'] || ENV['AWS_SECRET_KEY']
  @region = 'us-east-1'
end

Public Instance Methods

packer_hash() click to toggle source
# File lib/image_builder/builders/aws_base.rb, line 70
def packer_hash
  hash = {}

  req_attrs = [
    :type, :name, :access_key, :ami_name, :instance_type,
    :region, :secret_key, :source_ami, :ssh_username
  ]

  opt_attrs = [
    :ami_description, :ami_groups, :ami_product_codes, :ami_regions, :ami_regions, :ami_users,
    :ami_virtualization_type, :associate_public_ip_address, :availability_zone, :enhanced_networking,
    :iam_instance_profile, :run_tags, :security_group_id, :security_group_ids, :spot_price,
    :spot_price_auto_product, :ssh_port, :ssh_private_key_file, :ssh_private_ip, :ssh_timeout,
    :subnet_id, :tags, :temporary_key_pair_name, :token, :user_data, :user_data_file, :vpc_id,
    :launch_block_device_mappings, :ami_block_device_mappings
  ]

  # Required attrs
  req_attrs.each do |a|
    attr_to_hash(hash, a, true)
  end

  opt_attrs.each do |a|
    attr_to_hash(hash, a)
  end

  hash
end