Class: Packer::Builder::Amazon

Inherits:
Packer::Builder show all
Defined in:
lib/packer/builders/amazon.rb

Direct Known Subclasses

EBS, Instance

Defined Under Namespace

Classes: EBS, Instance

Constant Summary

Constants inherited from Packer::Builder

AMAZON_EBS, AMAZON_INSTANCE, DOCKER, VALID_BUILDER_TYPES, VIRTUALBOX_ISO

Instance Attribute Summary

Attributes inherited from DataObject

#data, #required

Instance Method Summary collapse

Methods inherited from Packer::Builder

get_builder, #name, types

Methods inherited from DataObject

#__add_array_of_array_of_strings, #__add_array_of_hashes, #__add_array_of_strings, #__add_boolean, #__add_hash, #__add_integer, #__add_string, #__exclusive_key_error, #add_required, #deep_copy, #validate

Constructor Details

#initializeAmazon

Returns a new instance of Amazon.



22
23
24
25
26
27
28
29
30
31
# File 'lib/packer/builders/amazon.rb', line 22

def initialize
  super
  self.add_required(
    'ami_name',
    'instance_type',
    'region',
    'source_ami',
    'ssh_username'
  )
end

Instance Method Details

#access_key(key) ⇒ Object



33
34
35
# File 'lib/packer/builders/amazon.rb', line 33

def access_key(key)
  self.__add_string('access_key', key)
end

#ami_block_device_mappings(mappings) ⇒ Object



61
62
63
# File 'lib/packer/builders/amazon.rb', line 61

def ami_block_device_mappings(mappings)
  self.__add_array_of_hashes('ami_block_device_mappings', mappings)
end

#ami_description(description) ⇒ Object



65
66
67
# File 'lib/packer/builders/amazon.rb', line 65

def ami_description(description)
  self.__add_string('ami_description', description)
end

#ami_groups(groups) ⇒ Object



69
70
71
# File 'lib/packer/builders/amazon.rb', line 69

def ami_groups(groups)
  self.__add_array_of_strings('ami_groups', groups)
end

#ami_name(name) ⇒ Object



37
38
39
# File 'lib/packer/builders/amazon.rb', line 37

def ami_name(name)
  self.__add_string('ami_name', name)
end

#ami_product_codes(codes) ⇒ Object



73
74
75
# File 'lib/packer/builders/amazon.rb', line 73

def ami_product_codes(codes)
  self.__add_array_of_strings('ami_product_codes', codes)
end

#ami_regions(regions) ⇒ Object



77
78
79
# File 'lib/packer/builders/amazon.rb', line 77

def ami_regions(regions)
  self.__add_array_of_strings('ami_regions', regions)
end

#ami_users(users) ⇒ Object



81
82
83
# File 'lib/packer/builders/amazon.rb', line 81

def ami_users(users)
  self.__add_array_of_strings('ami_users', users)
end

#ami_virtualization_type(type) ⇒ Object



85
86
87
# File 'lib/packer/builders/amazon.rb', line 85

def ami_virtualization_type(type)
  self.__add_string('ami_virtualization_type', type)
end

#associate_public_ip_address(bool) ⇒ Object



89
90
91
# File 'lib/packer/builders/amazon.rb', line 89

def associate_public_ip_address(bool)
  self.__add_boolean('associate_public_ip_address', bool)
end

#availability_zone(zone) ⇒ Object



93
94
95
# File 'lib/packer/builders/amazon.rb', line 93

def availability_zone(zone)
  self.__add_string('availability_zone', zone)
end

#enhanced_networking(bool) ⇒ Object



97
98
99
# File 'lib/packer/builders/amazon.rb', line 97

def enhanced_networking(bool)
  self.__add_boolean('enhanced_networking', bool)
end

#iam_instance_profile(profile) ⇒ Object



101
102
103
# File 'lib/packer/builders/amazon.rb', line 101

def iam_instance_profile(profile)
  self.__add_string('iam_instance_profile', profile)
end

#instance_type(type) ⇒ Object



41
42
43
# File 'lib/packer/builders/amazon.rb', line 41

def instance_type(type)
  self.__add_string('instance_type', type)
end

#launch_block_device_mappings(mappings) ⇒ Object



105
106
107
# File 'lib/packer/builders/amazon.rb', line 105

def launch_block_device_mappings(mappings)
  self.__add_array_of_hashes('launch_block_device_mappings', mappings)
end

#region(name) ⇒ Object



45
46
47
# File 'lib/packer/builders/amazon.rb', line 45

def region(name)
  self.__add_string('region', name)
end

#run_tags(tags) ⇒ Object



109
110
111
# File 'lib/packer/builders/amazon.rb', line 109

def run_tags(tags)
  self.__add_hash('run_tags', tags)
end

#secret_key(key) ⇒ Object



57
58
59
# File 'lib/packer/builders/amazon.rb', line 57

def secret_key(key)
  self.__add_string('secret_key', key)
end

#security_group_id(id) ⇒ Object



113
114
115
# File 'lib/packer/builders/amazon.rb', line 113

def security_group_id(id)
  self.__add_string('security_group_id', id, %w[security_group_ids])
end

#security_group_ids(ids) ⇒ Object



117
118
119
# File 'lib/packer/builders/amazon.rb', line 117

def security_group_ids(ids)
  self.__add_array_of_strings('security_group_ids', ids, %w[security_group_id])
end

#source_ami(name) ⇒ Object



49
50
51
# File 'lib/packer/builders/amazon.rb', line 49

def source_ami(name)
  self.__add_string('source_ami', name)
end

#ssh_port(port) ⇒ Object



121
122
123
# File 'lib/packer/builders/amazon.rb', line 121

def ssh_port(port)
  self.__add_integer('ssh_port', port)
end

#ssh_private_key_file(file) ⇒ Object



125
126
127
# File 'lib/packer/builders/amazon.rb', line 125

def ssh_private_key_file(file)
  self.__add_string('ssh_private_key_file', file)
end

#ssh_timeout(time) ⇒ Object



129
130
131
# File 'lib/packer/builders/amazon.rb', line 129

def ssh_timeout(time)
  self.__add_string('ssh_timeout', time)
end

#ssh_username(username) ⇒ Object



53
54
55
# File 'lib/packer/builders/amazon.rb', line 53

def ssh_username(username)
  self.__add_string('ssh_username', username)
end

#subnet_id(id) ⇒ Object



133
134
135
# File 'lib/packer/builders/amazon.rb', line 133

def subnet_id(id)
  self.__add_string('subnet_id', id)
end

#tags(tags) ⇒ Object



137
138
139
# File 'lib/packer/builders/amazon.rb', line 137

def tags(tags)
  self.__add_hash('tags', tags)
end

#temporary_key_pair_name(name) ⇒ Object



141
142
143
# File 'lib/packer/builders/amazon.rb', line 141

def temporary_key_pair_name(name)
  self.__add_string('temporary_key_pair_name', name)
end

#user_data(data) ⇒ Object



145
146
147
# File 'lib/packer/builders/amazon.rb', line 145

def user_data(data)
  self.__add_string('user_data', data)
end

#user_data_file(file) ⇒ Object



149
150
151
# File 'lib/packer/builders/amazon.rb', line 149

def user_data_file(file)
  self.__add_string('user_data_file', file)
end

#vpc_id(id) ⇒ Object



153
154
155
# File 'lib/packer/builders/amazon.rb', line 153

def vpc_id(id)
  self.__add_string('vpc_id', id)
end