Merge pull request #550 from mitchellh/fix#536

builder/amazon/ebs: Add config for target AZ.
This commit is contained in:
Mitchell Hashimoto 2013-10-23 20:42:15 -07:00
commit 7fa797d878
5 changed files with 13 additions and 0 deletions

View File

@ -1,5 +1,10 @@
## 0.4.0 (unreleased)
FEATURES:
* builder/amazon/ebs: Ability to specify which availability zone to create
instance in. [GH-536]
BUG FIXES:
* core: Won't panic when writing to a bad pipe. [GH-560]

View File

@ -23,6 +23,7 @@ type RunConfig struct {
SubnetId string `mapstructure:"subnet_id"`
TemporaryKeyPairName string `mapstructure:"temporary_key_pair_name"`
VpcId string `mapstructure:"vpc_id"`
AvailZone string `mapstructure:"avail_zone"`
// Unexported fields that are calculated from others
sshTimeout time.Duration
@ -83,6 +84,7 @@ func (c *RunConfig) Prepare(t *packer.ConfigTemplate) []error {
"subnet_id": &c.SubnetId,
"temporary_key_pair_name": &c.TemporaryKeyPairName,
"vpc_id": &c.VpcId,
"avail_zone": &c.AvailZone,
}
for n, ptr := range templates {

View File

@ -18,6 +18,7 @@ type StepRunSourceInstance struct {
SourceAMI string
IamInstanceProfile string
SubnetId string
AvailZone string
BlockDevices BlockDevices
instance *ec2.Instance
@ -51,6 +52,7 @@ func (s *StepRunSourceInstance) Run(state multistep.StateBag) multistep.StepActi
IamInstanceProfile: s.IamInstanceProfile,
SubnetId: s.SubnetId,
BlockDevices: s.BlockDevices.BuildLaunchDevices(),
AvailZone: s.AvailZone,
}
ui.Say("Launching a source AWS instance...")

View File

@ -101,6 +101,7 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packe
SourceAMI: b.config.SourceAmi,
IamInstanceProfile: b.config.IamInstanceProfile,
SubnetId: b.config.SubnetId,
AvailZone: b.config.AvailZone,
BlockDevices: b.config.BlockDevices,
},
&common.StepConnectSSH{

View File

@ -120,6 +120,9 @@ Optional:
* `vpc_id` (string) - If launching into a VPC subnet, Packer needs the
VPC ID in order to create a temporary security group within the VPC.
* `avail_zone` (string) - Destination availability zone to launch instance in.
Leave this empty to allow Amazon to auto-assign..
## Basic Example
Here is a basic example. It is completely valid except for the access keys: