Commit Graph

389 Commits

Author SHA1 Message Date
Mitchell Hashimoto 20fa7aeeb6 Merge pull request #2046 from danschaffer/amazonchroot-volumes-retry-fix
builder/amazon/chroot: fix no attachments on volume error.
2015-05-28 08:18:50 -07:00
jszwedko b1497b951c code.google.com/p/go.crypto/ssh -> golang.org/x/crypto/ssh
code.google.com/p/go.crypto/ssh is now at golang.org/x/crypto/ssh as of
https://code.google.com/p/go/source/detail?spec=svn.crypto.69e2a90ed92d03812364aeb947b7068dc42e561e&repo=crypto&r=8fec09c61d5d66f460d227fd1df3473d7e015bc6

Using the code.google.com import redirects properly, but runs into
issues if you try to use a subpackage of `ssh`, e.g. `agent` which
refers to golang.org/x/crypto/ssh causing conflicts if your types expect
code.google.com/p/go.crypto/ssh.

This is a precursor to a PR for #1066.
2015-05-28 08:17:49 -07:00
Mitchell Hashimoto c78c4e78ad amazon/common: sleep 3 seconds if instance doesn't exist 2015-05-27 20:15:07 -07:00
Mitchell Hashimoto f78d7eefdc Merge pull request #2129 from lokulin/master
Fixes #2128 Retry the AWS API when looking for a newly created instance
2015-05-27 20:14:14 -07:00
Mitchell Hashimoto 034e4e676c amazon/*: use new interpolation functions 2015-05-27 11:47:45 -07:00
Mitchell Hashimoto 50d7c598e9 amazon/ebs: use new interpolation stuff 2015-05-27 11:35:56 -07:00
Mitchell Hashimoto fea8bb3566 amazon/ebs: basic acceptance test 2015-05-26 13:47:24 -07:00
lokulin bda4ef7c65 Retry the AWS API when looking for a newly created instance
Sometimes the AWS API responds that it can't find a newly created
instance if you poll it too soon after creation.  Retry a few times
to be sure it really hasn't been created.
2015-05-22 15:08:51 +10:00
Dan Schaffer 03436a3745 builder/amazon/chroot: fix no attachments on volume error.
This adds retry logic to the amazon/chroot builder.  The builder
intermittently fails when ec2conn shows the volume in the attached
state but calling Volumes[0].Attachments return an empty array. The
fix adds a retry logic for when Volumes[0].Attachments has len 0 sleep
for 2 seconds and retry up to 30 times.

When the Volumes[0].Attachments is empty I find within 5 seconds the
Volumes[0].Attachments contains the correct value.

The issue is reported in:
https://github.com/mitchellh/packer/issues/1854
2015-04-16 13:06:48 -04:00
James Nugent 65a9347b1e Fix potential nil pointer errors in ported code
This commit adds extra nil checks for some pointers which were not
necessary when using goamz
2015-04-15 12:17:44 -07:00
James Nugent 33b4f5cc0a Check for EBS being nil before assigning it 2015-04-15 11:49:29 -07:00
James Nugent e99cd56b6c Migrate from mitchellh/goamz to awslabs/aws-sdk-go
This commit moves the Amazon builders of Packer away from the Hashicorp
fork of the goamz library to the official AWS SDK for Go, in order that
third party plugins may depend on the more complete official library
more easily.
2015-04-12 21:33:09 -04:00
Matt Fellows a973dce7d3 Report error code during Temporary Security Group creation (#2021) 2015-04-07 12:11:34 +10:00
Brian Hourigan a4cfd921f4 Adding missing hyphen to sudo options 2015-04-04 10:52:17 -04:00
Nevins Bartolomeo 6686b62347 AWS availability zone could be incorrect when using spot instances with no AZ specified 2015-04-03 20:52:54 -04:00
renat-sabitov-sirca d046e1cc5b Fixing transient AWS errors during EBS builds
Relates to #1539

AWS is eventually consistent and instance can be not visibile for
some time after creation. This fix eliminates describe-instances
call before going to the proper wait loop
2015-03-11 10:34:21 +11:00
Ash Caire 361e859556 Add EBS snapshot tags 2015-03-01 10:27:30 +11:00
Emil Hessman 505f51ff27 builder/amazon/ebs: fix incorrect printf verb type
Fixes the following vet report:

builder/amazon/ebs/step_create_ami.go:90: arg resp.Return for printf verb %s of wrong type: bool
2015-02-25 05:29:53 +01:00
Emil Hessman 05c2206684 builder/amazon/common: fix incorrect printf verb type in amiRegionCopy
Fixes the following vet reports:

builder/amazon/common/step_ami_region_copy.go:81: arg target for printf verb %s of wrong type: github.com/mitchellh/goamz/aws.Region
builder/amazon/common/step_ami_region_copy.go:93: arg target for printf verb %s of wrong type: github.com/mitchellh/goamz/aws.Region
2015-02-25 05:29:53 +01:00
Brian Hourigan f40fd36c31 Changing --region to --location 2015-02-19 14:40:36 -05:00
Brian Hourigan 8e69403735 Prepending -i to sudo so PATH is inherited from profile.d scripts related to ec2 tooling 2015-02-19 14:32:27 -05:00
Lesko, Matthew (NIH/NLM/NCBI) [C] 43f08b2664 go fmt all the things 2015-01-13 22:58:41 -05:00
Lesko, Matthew (NIH/NLM/NCBI) [C] 62e054c404 simplify output 2015-01-13 21:40:15 -05:00
Lesko, Matthew (NIH/NLM/NCBI) [C] 9d097f9d4e Permit Temp keys and named SSH keypairs
These changes permit the use of pre-created SSH keypairs with AWS. If
so, the configuration for the builder needs to include an
ssh_keypair_name option and a ssh_private_key_file.

If ssh_private_key_file is *not* defined, it'll go through the
rigamarole of creating a temporary keypair. The ssh_keypair_name option
by itself won't make that change, because it doesn't make sense to
specify a keypair but not tell packer where the private key is, but it
does happen that you could have a private key and the public-key is
"baked in", and not part of your EC2 account.
2015-01-13 16:27:33 -05:00
Lesko, Matthew (NIH/NLM/NCBI) [C] 8c87b1cc00 First attempt for re-using a named EC2 keypair
Adds a 'ssh_keypair_name' option to the configuration
for AWS, along with some munging to create the
temporarily keypair if one isn't specific.

NOT YET WORKING.

From a 'make' I get the following errors:

builder/amazon/ebs/builder.go:94: b.config.SSHKeyPairName undefined
(type config has no field or method SSHKeyPairName)

builder/amazon/instance/builder.go:199: b.config.SSHKeyPairName
undefined (type Config has no field or method SSHKeyPairName)
2015-01-13 13:12:04 -05:00
Mitchell Hashimoto 2dfc5d3e71 builder/amazon: inject special metadata for atlas artifacts 2014-12-09 16:14:04 -08:00
Armon Dadgar 20d040dcba Merge pull request #1723 from irgeek/fix-1637
Use an index loop as range loops over copies, not references
2014-12-08 11:43:30 -08:00
James Sinclair 02ebef9031 Use an index loop as range loops over copies, not references
Fixes #1637
2014-12-05 17:27:00 +11:00
Greg Cockburn dbaf865e59 change ordering of ssh connection IP for amazon. fixes #1559 2014-12-01 10:44:52 +11:00
Mitchell Hashimoto 0db6cd3533 Merge pull request #1330 from qur/qemu-vagrant
Qemu vagrant
2014-10-28 08:42:17 -07:00
Mitchell Hashimoto e422a45449 fmt 2014-10-28 08:35:21 -07:00
Mitchell Hashimoto 716d4719dc Merge pull request #1622 from delitescere/GH-1533-aws-timeout
builder/amazon: Extend timeout and allow user override [GH-1533]
2014-10-28 08:15:18 -07:00
Mitchell Hashimoto 4406c20af1 builder/amazon: prefer token in config [GH-1544] 2014-10-27 17:29:40 -07:00
Josh Graham 5a2c4fe8a0 builder/amazon: Extend timeout and allow user override [GH-1533]
- help resolve https://github.com/mitchellh/packer/issues/1533
  (although timeouts are always ultimately useless in a distributed
  system!)
- makes packer no more idempotent or janitorial than before
- derive maximum number of ticks from timeout
- default timeout to 300s (5m) to cater for global AMI copying
- allow user to override with AWS_TIMEOUT_SECONDS environment variable
2014-10-27 10:38:44 +11:00
Mitchell Hashimoto 010cdb2057 amazon/common: style 2014-10-14 15:39:13 -07:00
Matt Page 6fb2586fb2 fix: Ignore transient network errors when fetching AWS state.
Given that state fetching is an idempotent operation, a transient
network error should not cause the entire build to fail. Instead,
retry when such errors are encountered.
2014-10-13 10:02:46 -07:00
Julian Phillips 90a57c411f Expand Artifact API to expose build state
In order that something consuming an artifact can have access to extra
builder specific data add the State method which allows the caller to
ask for arbitary values by name.
2014-09-22 11:15:47 +01:00
Mitchell Hashimoto 75395af12d Merge branch '1064-fix-upload-file-permissions' of github.com:rasa/packer into rasa-1064-fix-upload-file-permissions
Conflicts:
	builder/parallels/common/step_upload_parallels_tools.go
	builder/vmware/common/step_upload_tools.go
	provisioner/chef-client/provisioner.go
	provisioner/chef-solo/provisioner.go
2014-09-08 13:20:46 -07:00
Mitchell Hashimoto dc0de7da49 builder/amazon-ebs: don't clean up AMI if doesn't exist [GH-1469] 2014-09-08 09:53:20 -07:00
Mitchell Hashimoto db90c16118 builder/amazon: support auto spot price discovery [GH-1465] 2014-09-06 10:44:12 -07:00
Mitchell Hashimoto a587bd47a1 builder/amazon/ebs: clean up AMI in error [GH-1186] 2014-09-06 10:12:33 -07:00
Mitchell Hashimoto 669f26a108 Merge pull request #1186 from henrysher/ami-cleanup
Add the cleanup when the process of EBS AMI interrupted
2014-09-06 10:10:10 -07:00
Mitchell Hashimoto 7d1db44ca4 builder/amazon: clean up UI output for spot instances a bit 2014-09-05 16:58:17 -07:00
Mitchell Hashimoto 2e5f3da5c1 builder/amazon: fix {{uuid}} default not being replaced 2014-09-05 16:38:05 -07:00
Mitchell Hashimoto 3a69b8c1b8 Merge branch 'add-spot-instance-support' of github.com:henrysher/packer into henrysher-add-spot-instance-support
Conflicts:
	builder/amazon/common/run_config.go
	builder/amazon/ebs/builder.go
	builder/amazon/instance/builder.go
2014-09-05 16:30:22 -07:00
Mitchell Hashimoto c9cc82d89e builder/amazon-chroot: add description with time created snapshot
[GH-1388]
2014-09-05 16:10:33 -07:00
Mitchell Hashimoto 5db91c84bf builder/amazon: string fields on device mappings can use variables 2014-09-05 12:38:19 -07:00
Mitchell Hashimoto ed377c9ff0 builder/amazon-instance: --no-filter by default [GH-1137] 2014-09-05 09:32:35 -07:00
Mitchell Hashimoto 0776d9de34 builder/amazon: ssh_private_ip [GH-1229] 2014-09-04 21:48:14 -07:00
Mitchell Hashimoto bac54a6645 builder/amazon/common: token [GH-1236] 2014-09-04 21:19:20 -07:00
Mitchell Hashimoto 69cd01bbe2 builder/amazon/common: wait for instance ready before tagging [GH-1367] 2014-09-04 18:43:35 -07:00
Mitchell Hashimoto 77bd024079 builder/*: fix flaky tests, get tests passing 2014-09-04 18:11:05 -07:00
Mitchell Hashimoto dc74c2bbdd builder/amazon: tests 2014-09-03 21:27:43 -07:00
Mitchell Hashimoto 2a9cb50b17 builder/amazon: fix broken build 2014-09-02 10:17:52 -07:00
Mitchell Hashimoto 825864a9ea Merge branch 'additional-user-variables' of github.com:nBerg/packer into nBerg-additional-user-variables
Conflicts:
	builder/amazon/common/run_config.go
2014-09-02 09:57:52 -07:00
Mitchell Hashimoto 752162c234 fmt 2014-09-02 09:55:06 -07:00
Mitchell Hashimoto 5d1c1e6716 Merge pull request #1373 from anthonybishopric/debug_bundle_commands
builder/amazon-instance: Debug the evaluated bundle commands
2014-09-02 09:49:12 -07:00
Mitchell Hashimoto e8889e56ed Merge pull request #1381 from pas256/chroot-hvm
builder/amazonchroot: can build both PV and HVM images
2014-09-02 09:47:53 -07:00
Mitchell Hashimoto dac078b451 Merge pull request #1360 from jmassara/ee_fix
builder/amazon-chroot: Fix bug with getting ec2 connection instead of source image
2014-09-02 09:46:10 -07:00
Mitchell Hashimoto 704648896e Merge pull request #1425 from dysinger/1424-amazon-instance-s3-region-not-url
builder/amazon-instance: Use Region not S3Endpoint (see Issue 1424)
2014-09-01 21:31:36 -07:00
Ulf Mansson bebca3bfae It's not necessary to use an instance-store image to build an instance-store image, see this example http://sorcery.smugmug.com/2014/01/29/instance-store-hvm-amis-for-amazon-ec2/ so there should be no restriction on the ExpectedRootDevice 2014-08-29 09:22:27 +02:00
Tim Dysinger c79121617c Use Region not S3Endpoint 2014-08-18 08:52:31 -10:00
Peter Sankauskas ab9f0bc3c8 Removing my debugging output 2014-07-29 22:18:43 -07:00
Peter Sankauskas a2c0b104f0 Adding the conditional necessary to construct the right options for both PV and HVM images. Also adding a test to make sure it is doing the right thing 2014-07-29 21:56:37 -07:00
Peter Sankauskas 460e2da248 The mount command for a PV image that is attached to /dev/sdf is:
mount /dev/xvdf /mnt/point
while for an HVM image that is attached to /dev/sdf, its mount command is
mount /dev/xvdf1 /mnt/point
so this code enabled that
2014-07-29 21:55:20 -07:00
Peter Sankauskas 6b751cac39 Formatting 2014-07-29 16:15:53 -07:00
Peter Sankauskas a59ee93bca To be able to build both PV and HVM images, it is not possible to use both /dev/sd[f-p] and [1-16] as the HVM images get attached at /dev/sdf but must be mounted a /dev/sdf1.
This reduces the number of simultaneous packer runs possible significantly, but unless you are Netflix, who have Aminator anyway, this is probably never going to be an issue
2014-07-29 16:07:49 -07:00
abishopric d62edd6c05 Print the evaluated bundle commands 2014-07-24 16:30:30 -07:00
Henry Huang 97eb744c87 De-register the unavailable image in the cleanup 2014-07-22 23:40:38 +08:00
James Massara ca84e2ac55 Fix bug with getting ec2 connection instead of source image 2014-07-21 15:28:47 -07:00
Mitchell Hashimoto 7439baf75e Merge pull request #1343 from fnoeding/templating
Added support to use templates for more fields in null-builder and amazon-builder
2014-07-19 09:49:49 -07:00
Mitchell Hashimoto 8250755a23 Merge pull request #1228 from jmassara/enhanced_networking
builder/amazon: support for enhanced networking
2014-07-19 09:48:24 -07:00
Florian Noeding e932ec6978 amazon builders now handle templating of user_data and user_data_file 2014-07-17 17:45:25 +02:00
Nina Berg bd1a0d07fb Added some variables to amazon-ebs builder and chef-client provisioner 2014-07-08 13:15:17 -04:00
Ian Delahorne 2d1e1cc83e Sort AMI names in Artifact.String - fixes random test failures
With go tip, the output from Artifact.String will sometimes be output in a
different order than the tests. Sort the AMI strings before outputting.
See https://travis-ci.org/mitchellh/packer/jobs/28748467 for an example of this
failure.
2014-06-30 09:07:36 -05:00
James Massara be27ecc64b Add option to enable enhanced networking (SriovNetSupport) for images. 2014-06-04 14:58:11 -07:00
Brandon Turner b2258dc4e9
Fix chroot builder to work with chef-solo
According to be5adb92b5, the UploadDir
method supports two ways of copying depending on whether a trailing
slash is used:
    src = "dir"  -> dest/dir
    src = "dir/" -> dest

On BSD-based systems (such as OSX, FreeBSD, etc.) the `cp -R` command
handles these two cases automatically.  However, Linux treats "src/" and
"src" the same.

To support the trailing slash syntax portably, we can use:
    src = "dir"   -> dest/dir
    src = "dir/." -> dest

This works on BSD and Linux.  It is better than using wildcards as it
grabs hidden files as well.

This fixes #1196 that prevents the chef-solo provisioner from working
with the chroot builder.
2014-05-27 19:02:29 -05:00
Henry Huang da29d684a8 Enable the spot_price in "amazon-instance-store" AMI 2014-05-26 23:01:49 +08:00
Henry Huang 3980c7dcfd Save the spot request before waiting for its active state 2014-05-26 23:01:49 +08:00
Henry Huang 1e1fa3de26 Add the cleanup for existing spot request 2014-05-26 23:01:49 +08:00
Henry Huang 5d410bddc9 When unexpected state found in waiting, notify the caller func with a correct error message 2014-05-26 23:01:49 +08:00
Henry Huang 3a74c469e5 Add "spot_price" param into template processing 2014-05-26 23:01:49 +08:00
Henry Huang a411405628 Clean up code via "go fmt" 2014-05-26 23:01:49 +08:00
Henry Huang c33e7cc867 Add the support of launching spot instances in "amazon-ebs" AMI 2014-05-26 23:01:49 +08:00
Greg Burek 3a45712780 Adds support for encrypted EBS volumes 2014-05-22 11:36:22 -07:00
Henry Huang 43385a58bc Refine the comments 2014-05-20 11:16:50 +08:00
Henry Huang e8c09ae223 Add the cleanup when the process of EBS AMI interrupted 2014-05-20 00:40:39 +08:00
Pierre Riteau 5294e0ed61 Remove unused file 2014-05-15 17:22:40 +01:00
Ross Smith II d92179847d provisioner/file: set file/directory permissions
fixes #1064
2014-05-09 21:03:35 -07:00
Jaime Soriano Pastor 32bb745734 Force LANG=C before appending rest of environment, as only first occurence is used 2014-05-08 17:11:19 +02:00
Nathan Hartwell be5adb92b5 Appending wildcard to src causes problems
It appears that the desired effect was to support
    src = "dir" -> dest/dir
    src = "dir/" -> dest

but cp -R already handles this, provided the trailing slash does not
get consumed by the shell.

The wildcard causes problems when multiple files match the
shell glob, e.g.

UploadDir("/tmp", "./salt*", [])

where my working dir contains
 - salt
 - salt-foo

will error.
2014-05-02 11:18:56 -05:00
Mitchell Hashimoto 0417ae3059 builder/amazon: alphabetize some things 2014-04-30 15:43:11 -07:00
Mitchell Hashimoto 0558d56bcf builder/amazon/chroot: get tests psasing on Windows 2014-04-26 12:31:55 -07:00
Mitchell Hashimoto e84e5e4f2c Merge branch 'update-ssh-package' of github.com:higebu/packer into higebu-update-ssh-package
Conflicts:
	builder/amazon/common/ssh.go
	builder/digitalocean/ssh.go
	builder/googlecompute/ssh.go
	builder/openstack/ssh.go
	communicator/ssh/communicator_test.go
	communicator/ssh/keychain.go
	communicator/ssh/keychain_test.go
2014-04-26 11:12:06 -07:00
Ross Smith II e38ff2f84e Merge pull request #1021 from laggyluke/master
builder/amazon: configurable virtualization type
2014-04-21 18:08:32 -07:00
Ross Smith II ef1898083a Merge pull request #971 from fnoeding/amazon-sshkey
optionally use existing ssh key for amazon builders
2014-04-21 08:10:05 -07:00
higebu f087ce16dc Fix the build problem by updating ssh package 2014-04-15 10:17:26 +09:00
Ross Smith II 27491f93f8 use old ssh code until higebu's branch is ready, see #1019 2014-04-11 08:23:12 -07:00
George Miroshnykov fc6e8c0830 builder/amazon: configurable virtualization type 2014-04-10 15:16:31 +03:00
Florian Noeding 6371b70609 optionally use existing ssh key for amazon builders 2014-03-24 12:47:00 +01:00