Megan Marsh
b804e5a8f5
Merge pull request #8987 from VaijanathB/azure-devtestlabs-take2
...
Building Azure devtestlabs Images using Packer - update
2020-04-03 11:14:31 -07:00
Megan Marsh
8840b4a830
Merge pull request #8625 from hashicorp/remove_ansible_proxy
...
Remove ansible proxy
2020-04-03 09:23:10 -07:00
Sylvia Moss
665330de92
Write generic Builder-Provisioner acceptance test logic ( #8963 )
2020-04-03 18:17:09 +02:00
Vaijanath Angadihiremath
b7d85b8a23
Added acceptance tests for DTL. Fixed couple of issues with DTL root resource group not set to new directory
2020-04-02 17:23:21 -07:00
Vaijanath Angadihiremath
69015b1870
Fixing the linting errors
2020-04-02 17:22:39 -07:00
Vaijanath Angadihiremath
e726902116
Fixing the latest changes from the merge
2020-04-02 17:16:31 -07:00
Vaijanath Angadihiremath
645cdf1a59
Updating the modules to include update to autorest 12.4
2020-04-02 17:13:36 -07:00
Megan Marsh
b66e49223d
extract the building of command args into a testable helper function
2020-04-01 16:07:14 -07:00
Megan Marsh
91906b688c
regenerate code
2020-04-01 11:37:25 -07:00
Megan Marsh
73c87044fd
fix tests
2020-04-01 11:31:48 -07:00
Megan Marsh
64b706983e
docs and cleanup
2020-04-01 11:31:48 -07:00
Megan Marsh
d45ffe73d0
fix default ssh-extra-args flag
2020-04-01 11:31:48 -07:00
Megan Marsh
d57809bcda
pass ansible_password on command line instead of inside inventory file
2020-04-01 11:31:48 -07:00
Megan Marsh
eda9ce70e7
update tests
2020-04-01 11:31:48 -07:00
Megan Marsh
9a40403433
clean up tests
2020-04-01 11:31:48 -07:00
Megan Marsh
e155d2a1c8
add mock so we can test full provision flow
2020-04-01 11:31:48 -07:00
Megan Marsh
6c756a7b31
fix tests
2020-04-01 11:31:48 -07:00
Megan Marsh
19d49f8b78
templatize inventory files; implement inventory for winrm
2020-04-01 11:31:48 -07:00
Megan Marsh
ca5814ab74
move proxy behind feature flag
2020-04-01 11:31:48 -07:00
Adrien Delorme
b94937c05c
Update provisioner_test.go ( #8900 )
2020-03-18 11:51:54 +01:00
Adrien Delorme
569c802630
Update provisioner_test.go
...
fix TestProvisioner_RemoteFileDefaultsToScriptnnnn
2020-03-17 17:10:43 +01:00
Adrien Delorme
f1c0a9cdbd
see what's wrong with that weird test
2020-03-17 17:02:18 +01:00
Moss
112d4daa3d
Fix linter
2020-03-13 17:52:33 +01:00
Moss
5a8c628880
Add acc test validation to avoid running with unit tests
2020-03-13 17:50:05 +01:00
Moss
3f49b7c66e
Fix linter
2020-03-13 17:17:42 +01:00
Moss
0cc1092222
Fix format
2020-03-13 17:11:13 +01:00
Moss
2ca6804827
Move shell prov acc test to the same folder
2020-03-13 17:10:51 +01:00
Moss
7fbbbffd5c
Interpolate file provisioner and add integration tests
2020-03-13 16:17:40 +01:00
Moss
6c06a2a048
Fix format
2020-03-12 17:59:34 +01:00
Moss
a3740bb9be
Interpolate shell inline config
2020-03-12 17:54:31 +01:00
Wilken Rivera
e1a46ec293
Fix gosimple S1025 linting errors ( #8838 )
...
Remove unneeded use of fmt.Sprintf for variables that are already strings.
2020-03-04 15:31:30 -05:00
Sylvia Moss
ce674ff272
Add exclude mapstructure tag to exclude from hcl2spec struct ( #8785 )
2020-03-03 17:13:39 +01:00
Paschalis Tsilias
beca6de71b
Add packer.ExpandUser() function to support tilde in usage of config.ValidationKeyPath ( #8657 )
2020-01-28 14:33:42 +01:00
nywilken
b80882f3b8
provisioner/shell: Fix envVarFile clean up issue
...
This change ensures the deletion of the external envVarFile (use_env_var_file = true) occurs after all script files have been executed and deleted.
Build results before change
```
> packer build build.pkr.hcl [~0]
docker: output will be in this color.
==> docker: Creating a temporary directory for sharing data...
==> docker: Pulling Docker image: ubuntu:bionic
docker: bionic: Pulling from library/ubuntu
docker: Digest: sha256:8d31dad0c58f552e890d68bbfb735588b6b820a46e459672d96e585871acc110
docker: Status: Image is up to date for ubuntu:bionic
docker: docker.io/library/ubuntu:bionic
==> docker: Starting docker container...
docker: Run command: docker run -v /home/wilken/.packer.d/tmp476880774:/packer-files -d -i -t --entrypoint=/bin/sh -- ubuntu:bionic
docker: Container ID: 812069b4d70746a6d4592a8f75c06867c6774b8b0bd81ade76eae7926a30f64b
==> docker: Using docker communicator to connect: 172.17.0.2
==> docker: Provisioning with shell script: sample.sh
docker: Sample Script
docker: wilken is NotForSale!
==> docker: Provisioning with shell script: foobar.sh
==> docker: /bin/sh: 1: .: Can't open /tmp/varfile_2555.sh
==> docker: Provisioning step had errors: Running the cleanup provisioner, if present...
==> docker: Killing the container: 812069b4d70746a6d4592a8f75c06867c6774b8b0bd81ade76eae7926a30f64b
Build 'docker' errored: Script exited with non-zero exit status: 2.Allowed exit codes are: [0]
==> Some builds didn't complete successfully and had errors:
--> docker: Script exited with non-zero exit status: 2.Allowed exit codes are: [0]
==> Builds finished but no artifacts were created.
```
Build results after change
```
> packer build build.pkr.hcl
docker: output will be in this color.
==> docker: Creating a temporary directory for sharing data...
==> docker: Pulling Docker image: ubuntu:bionic
docker: bionic: Pulling from library/ubuntu
docker: Digest: sha256:8d31dad0c58f552e890d68bbfb735588b6b820a46e459672d96e585871acc110
docker: Status: Image is up to date for ubuntu:bionic
docker: docker.io/library/ubuntu:bionic
==> docker: Starting docker container...
docker: Run command: docker run -v /home/wilken/.packer.d/tmp819845000:/packer-files -d -i -t --entrypoint=/bin/sh -- ubuntu:bionic
docker: Container ID: d8ed9100ff5017379bfc0d80703b2b2d10c4104941663aa5ddbbf18f6dcf74a5
==> docker: Using docker communicator to connect: 172.17.0.2
==> docker: Provisioning with shell script: sample.sh
docker: Sample Script
docker: wilken is NotForSale!
==> docker: Provisioning with shell script: foobar.sh
docker: FooBar Script
docker: wilken is NotForSale!
==> docker: Committing the container
docker: Image ID: sha256:a412e43f134431f2049a7d06d5d691aad3717d91dd2ee5e2575e05b89384a4b3
==> docker: Killing the container: d8ed9100ff5017379bfc0d80703b2b2d10c4104941663aa5ddbbf18f6dcf74a5
Build 'docker' finished.
==> Builds finished. The artifacts of successful builds are:
--> docker: Imported Docker image: sha256:a412e43f134431f2049a7d06d5d691aad3717d91dd2ee5e2575e05b89384a4b3
```
2020-01-23 14:59:36 -05:00
Megan Marsh
4b9568e409
fix winrmpass sanitization to account for empty string value.
2020-01-06 10:07:30 -08:00
Megan Marsh
9eda2031d2
Remove redundant placeholder ( #8503 )
2019-12-19 10:39:46 +01:00
Adrien Delorme
4b7132c87c
Merge remote-tracking branch 'origin/master' into sharing_info
2019-12-17 11:57:09 +01:00
Adrien Delorme
0785c2f6fc
build using HCL2 ( #8423 )
...
This follows #8232 which added the code to generate the code required to parse
HCL files for each packer component.
All old config files of packer will keep on working the same. Packer takes one
argument. When a directory is passed, all files in the folder with a name
ending with “.pkr.hcl” or “.pkr.json” will be parsed using the HCL2 format.
When a file ending with “.pkr.hcl” or “.pkr.json” is passed it will be parsed
using the HCL2 format. For every other case; the old packer style will be used.
## 1. the hcl2template pkg can create a packer.Build from a set of HCL (v2) files
I had to make the packer.coreBuild (which is our one and only packer.Build ) a public struct with public fields
## 2. Components interfaces get a new ConfigSpec Method to read a file from an HCL file.
This is a breaking change for packer plugins.
a packer component can be a: builder/provisioner/post-processor
each component interface now gets a `ConfigSpec() hcldec.ObjectSpec`
which allows packer to tell what is the layout of the hcl2 config meant
to configure that specific component.
This ObjectSpec is sent through the wire (RPC) and a cty.Value is now
sent through the already existing configuration entrypoints:
Provisioner.Prepare(raws ...interface{}) error
Builder.Prepare(raws ...interface{}) ([]string, error)
PostProcessor.Configure(raws ...interface{}) error
close #1768
Example hcl files:
```hcl
// file amazon-ebs-kms-key/run.pkr.hcl
build {
sources = [
"source.amazon-ebs.first",
]
provisioner "shell" {
inline = [
"sleep 5"
]
}
post-processor "shell-local" {
inline = [
"sleep 5"
]
}
}
// amazon-ebs-kms-key/source.pkr.hcl
source "amazon-ebs" "first" {
ami_name = "hcl2-test"
region = "us-east-1"
instance_type = "t2.micro"
kms_key_id = "c729958f-c6ba-44cd-ab39-35ab68ce0a6c"
encrypt_boot = true
source_ami_filter {
filters {
virtualization-type = "hvm"
name = "amzn-ami-hvm-????.??.?.????????-x86_64-gp2"
root-device-type = "ebs"
}
most_recent = true
owners = ["amazon"]
}
launch_block_device_mappings {
device_name = "/dev/xvda"
volume_size = 20
volume_type = "gp2"
delete_on_termination = "true"
}
launch_block_device_mappings {
device_name = "/dev/xvdf"
volume_size = 500
volume_type = "gp2"
delete_on_termination = true
encrypted = true
}
ami_regions = ["eu-central-1"]
run_tags {
Name = "packer-solr-something"
stack-name = "DevOps Tools"
}
communicator = "ssh"
ssh_pty = true
ssh_username = "ec2-user"
associate_public_ip_address = true
}
```
2019-12-17 11:25:56 +01:00
Megan Marsh
0f6d1beccf
add an extra string array to the Prepare() return values in the builder interfaces; this sets up the ability for builders to give the provisioners custom user-accessible build-time variables.
2019-12-16 21:23:05 -08:00
Megan Marsh
82367a88f8
reorganize placeholder data call to live with provisioner implementation; force users to use the generated function, therefore forcing validation, for all variables except winrmpassword, by doing a simple string check against the placeholder data.
2019-12-14 03:32:38 -08:00
Megan Marsh
3389d843f0
update all provisioners that used the winrmpassword tooling to use the new generateddata option
2019-12-12 16:42:53 -08:00
Megan Marsh
b2012c7ff3
fix tests
2019-12-12 15:47:17 -08:00
Megan Marsh
39fd462b56
change all provision func signatures to use map[string]interface{}
2019-12-12 15:38:32 -08:00
Megan Marsh
0ca7c9f397
fix tests
2019-12-11 16:29:35 -08:00
Megan Marsh
6f418d0e54
get data sharing to a working state with the powershell provisioner
2019-12-11 15:43:38 -08:00
Megan Marsh
f4c3501af5
pass struct of generated data into provision() call
2019-12-11 15:43:38 -08:00
Megan Marsh
822aa02500
Merge pull request #8468 from pfuender/master
...
Add version selection for chef-client provisioner
2019-12-10 12:29:32 -08:00
pfuender
ffb9272fb2
adding version-override for chef-client provisioner
2019-12-09 20:58:04 +01:00
Wilken Rivera
b79986c3c5
Merge pull request #8411 from kevingunn-wk/fix_8410
...
rename galaxy_command to galaxycommand
2019-12-09 11:16:20 -08:00
Kevin Gunn
70aa0516de
reset ansible-local documentation to include galaxy_command
...
fix spacing in fixer.go
2019-11-26 01:05:33 -05:00