Commit Graph

696 Commits

Author SHA1 Message Date
Matthew Hooker 74bf0b636b Merge pull request #4791 from optix2000/master
Add version selection for chef-solo provisioner
2017-06-05 15:30:48 -07:00
Ian Ellis 31f66b6fe9 Cloned GrainsFile test from MinionConfig test 2017-06-04 13:03:50 +01:00
Ian Ellis 912fc9c2af Added grains_file config item to copy file to /etc/salt/grains 2017-06-04 08:31:30 +01:00
Sean Chittenden 1ba7f9cc20
Universally provide POSIX semantics for the `shell` provisioner.
All platforms everywhere have `env(1)` available, leverage it
accordingly.

Improves on: #2343
2017-05-20 09:28:02 -07:00
Matthew Hooker 7999f886b1 Merge pull request #4792 from mkuzmin/slash
provisioner/ansible-local: Convert Windows paths with backslashes to …
2017-04-26 15:20:49 -07:00
Dan Fuchs 8401057ed5 Merge branch 'master' into ansible-inventory-dir 2017-04-26 13:20:00 -05:00
Rickard von Essen 999f2da499
ansible-local/ansible: Add extra-vars packer_*
Added:
- `packer_build_name`
- `packer_builder_type`
- `packer_http_addr` - `ansible-local` only

Closes: #4820
2017-04-23 12:55:01 +02:00
Dan Fuchs 97c819dc15 Merge branch 'master' of https://github.com/mitchellh/packer into ansible-inventory-dir 2017-04-20 10:34:03 -05:00
Weilu Jia b1c5ccd3e2 Add version selection for chef-solo provisioner in Windows too 2017-04-17 18:16:34 -07:00
Michael Kuzmin 795921988e provisioner/ansible-local: Convert Windows paths with backslashes to Unix style 2017-04-13 12:15:00 +03:00
Weilu Jia c418307162 Add version selection for chef-solo provisioner
Prevents issues such as #1751 when chef changes major versions
2017-04-12 16:18:00 -07:00
Dan Fuchs f45f4568db make validateInventoryDirectoryConfig function 2017-04-06 14:50:02 -05:00
Dan Fuchs 39a9eac44f Remove `req` param from validateDirectoryConfig 2017-04-05 09:14:30 -05:00
Dan Fuchs 3fc809c05b Ansible provisioner: check if inventory directory exists during prepare 2017-04-04 22:49:24 -05:00
Dan Fuchs 492bff474b Ansible provisioner: Specify full path to generated inventory file 2017-04-04 22:04:26 -05:00
Dan Fuchs 609e70face inventory_directory option for ansible provisioner
Add an `inventory_directory` setting to the Ansible provisioner that
allows a user to specify a directory in which the Packer Ansible
provisioner would write the generated inventory file.  If a value is
specified for this setting, then have the Packer Ansible provisioner
pass this directory as the -i arg when it calls ansible.

This would allow an Ansible playbook used by the Packer Ansible
provisioner to use variables specified in `host_vars` and `group_vars`
in this inventory directory.
2017-04-04 16:43:46 -05:00
Matthew Hooker 81522dced0
move packer to hashicorp 2017-04-04 13:39:01 -07:00
Matthew Hooker 6f27f67346
more fixes from errcheck 2017-03-29 13:38:31 -07:00
Matthew Hooker de296ac06b
simplify 2017-03-28 20:45:25 -07:00
Matthew Hooker 35578d9ed1
remove unnecessary type conversions 2017-03-28 20:36:21 -07:00
Matthew Hooker 79287d7e47
simplify some code 2017-03-28 20:36:20 -07:00
Matthew Hooker 0149f679de
Print instead of Printf with no dynamic first variable. 2017-03-28 20:36:20 -07:00
Matthew Hooker d1b20b3d9c
remove a bunch of dead code.
https://github.com/dominikh/go-tools/tree/master/cmd/unused
2017-03-28 20:36:20 -07:00
Matthew Hooker 230079f73a
spell fixes 2017-03-28 20:36:19 -07:00
Andrey Chernih 7548024720 More verbose error message when ansible-playbook fails
I've spent 1 hour today debugging why packer does not want to work with
ansible. It turns out `ansible-playbook` command was returning non-zero
exit status because of the file system permission problem.

Output before change:

    % packer build rabbitmq.json
    amazon-ebs output will be in this color.

    1 error(s) occurred:

    * exit status 1

Output after change:

    amazon-ebs output will be in this color.

    1 error(s) occurred:

    * Error running "ansible-playbook --version": exit status 1
2017-03-21 20:26:41 -07:00
Matthew Hooker 6894f93085 Merge pull request #4534 from mitchellh/chefclean
provisioner/chef-client: only upload knife config if we're cleaning
2017-02-26 18:46:15 -08:00
Marc Carmier 78ab21b42f Test error messages for restart_command and restart_timeout seems to be erroneous 2017-02-12 18:17:31 +01:00
Matthew Hooker 825f69c64d
provisioner/chef-client: only upload knife config if we're cleaning 2017-02-09 23:37:35 -08:00
Matthew Hooker a836268490
fix test on windows 2017-02-06 11:29:39 -08:00
Matthew Hooker 0f445dff07
fix tests 2017-02-03 15:03:19 -08:00
Matthew Hooker 45030e1919
provisioner/anisble: use randomized staging dir 2017-01-27 16:14:35 -08:00
DanHam 370b67497e
provisioner/powershell: Don't over complicate removal of tmp output file 2017-01-26 11:21:45 +00:00
DanHam 21be983855 provisioner/powershell: Use system context env var to set output file path
Fixes #4271
2017-01-26 00:17:46 +00:00
DanHam e350739ecb
post-processor/shell-local: expand tests to align with shell provisioner 2017-01-23 22:25:39 +00:00
DanHam 28051a9218 provisioner/windows-shell: fix and compact env var test 2017-01-23 12:10:46 +00:00
DanHam e8db6b9b9a provisioner/windows-shell: Remove env var check - again checked in prepare 2017-01-23 12:10:46 +00:00
DanHam c88fafdf38 provisioner/powershell: align, fix and compact env var test 2017-01-23 12:10:46 +00:00
DanHam 4122f3a897 provisioner/powershell: Remove env var check - we already check in Prepare 2017-01-23 12:10:46 +00:00
DanHam 4514b1b10f provisioner/shell: expand tests to align with powershell/win-shell 2017-01-23 12:10:46 +00:00
DanHam 0cbb4ff30c provisioner/shell: Align gen of flattened env vars with powershell/win-shell
* Move code to generate quoted flattened env vars to separate function
* Fix: generate flattened env vars once per provisioner not once per script
2017-01-23 12:10:46 +00:00
DanHam 80ebcea5e1
Mirror cleaner test code back from windows-shell to powershell 2017-01-19 13:33:59 +00:00
DanHam 2bd9fa6c70
Use counter for index. Sort stray comments. 2017-01-19 12:12:00 +00:00
Matthew Hooker c33cef9c12
tests for equals in windows-shell 2017-01-18 12:51:14 -08:00
DanHam 49bc2e353f
Fix to allow equals in value of environment variable. Mirrors #4328 2017-01-18 12:42:25 -08:00
Matthew Hooker 4e6a44f5f1
append will resize 2017-01-17 17:21:14 -08:00
Matthew Hooker 480398c3d2
only set PACKER_HTTP_ADDR if a server is listening 2017-01-17 17:17:36 -08:00
Matthew Hooker 6563eb213c
Document. add to windows-shell and powershell 2017-01-17 17:07:36 -08:00
Matthew Hooker d2e59e4e92
set PACKER_HTTP_ADDR env var when available.
If using a builder that has an http server set up for file transfer,
expose the connection info to the shell provisioner through the environment
variable PACKER_HTTP_ADDR.

Closes #2869
2017-01-16 23:19:52 -08:00
Matthew Hooker 5fc6a2ee70 Merge pull request #4326 from asteris-llc/feature/converge-provisioner
New Provisioner: Converge
2017-01-04 10:46:18 -08:00
Matthew Hooker 6d6c7864b4 Merge pull request #4328 from DanHam/gh-3108
Allow equals sign in value of environment variable for Powershell provisioner
2017-01-03 12:38:17 -08:00
Sean Malloy a617884a16 Add more tests for puppet-masterless provisioner
* Add tests for staging_directory config option
* Add tests for working_directory config option
2016-12-28 21:14:17 -06:00
Brian Hicks feab6f096e
provisioner(converge): add prevent_bootstrap_sudo 2016-12-28 12:53:22 -06:00
Brian Hicks fb6a5c5bbc
provisioner(converge): change skip_bootstrap back to bootstrap 2016-12-28 12:49:40 -06:00
Brian Hicks 64ebd3af8d
provisioner(converge): remove version validation 2016-12-28 08:49:08 -06:00
Brian Hicks 18425c45d0
provisioner(converge): change bootstrap to skip_bootstrap 2016-12-28 08:48:02 -06:00
Brian Hicks 5d935767f0
provisioner(converge): add bootstrap_command 2016-12-28 08:45:19 -06:00
Brian Hicks 843731d98d
provisioner(converge): add prevent_sudo 2016-12-28 08:19:03 -06:00
Sean Malloy c226b19d08 Add additional unit tests for puppet-server provisioner
* Add puppet-server test for staging_dir config option
* Add puppet-server test for execute_command config option
2016-12-27 22:35:13 -06:00
DanHam 0423f91037
Fix to allow equals sign in value of environment variable 2016-12-28 00:33:16 +00:00
DanHam be0196492f
Tests for env variables values starting with or containing an equals sign 2016-12-28 00:31:17 +00:00
Brian Hicks 3311d3a48d
provisioner(converge): interpolate execute_command 2016-12-27 16:48:11 -06:00
Brian Hicks fe4b972d32
provisioner(converge): flatten execution fields 2016-12-27 16:32:19 -06:00
Brian Hicks 3658a0b6b5
provisioner(converge): remove log line 2016-12-27 16:31:12 -06:00
Brian Hicks de918ac7a7
provisioner(converge): rename directory to working_directory 2016-12-27 16:07:16 -06:00
Brian Hicks e6ba4c1929
provisioner(converge): remove version check 2016-12-27 16:03:35 -06:00
Brian Hicks 549ff50a3c
provisioner(converge): handle http error 2016-12-27 14:58:41 -06:00
Brian Hicks b46a402a18
provisioner(converge): add tests for Prepare 2016-12-27 14:47:13 -06:00
Brian Hicks 73252b9a9b
provisioner(converge): reverse the meaning of bootstrap 2016-12-27 12:24:06 -06:00
Brian Hicks b8849a9c2d
provisioner(converge): add version specification for bootstrapping 2016-12-27 12:22:17 -06:00
Brian Hicks eca8690018
provisioner(converge): add actual provisioning step 2016-12-27 12:13:51 -06:00
Brian Hicks 73d5593242
provisioner(converge): add validate for source and destination 2016-12-27 11:41:52 -06:00
Brian Hicks 4f0034e574
provisioner(converge): transfer module directories 2016-12-27 11:29:36 -06:00
Brian Hicks e2daefab71
provisioner(converge): improve error messages when Converge isn't found 2016-12-27 11:20:20 -06:00
Brian Hicks 03a8e309ba
provisioner(converge): add bootstrapping 2016-12-27 10:50:33 -06:00
Sean Malloy ce43ade973 Add additional unit tests for puppet provisioners
* Add puppet-masterless test for packer_build_name default fact
* Add puppet-masterless test for packer_builder_type default fact
* Add puppet-server test for puppet bin directory
2016-12-26 23:11:27 -06:00
Sean Malloy 7feb8b993c Add default facts for puppet-server provisioner 2016-12-22 15:53:59 -06:00
Taliesin Sisson 335615408a Run go fmt on files 2016-12-12 22:45:19 +00:00
Taliesin Sisson c88a2ef872 Remove trailing tabs 2016-12-12 22:45:10 +00:00
Taliesin Sisson 55353fae89 Fix spelling mistake
Fix code type for formatting
Remove empty space
2016-12-12 22:45:09 +00:00
Taliesin Sisson f38d787b0e Powershell uses UTF16Le for encodedCommand 2016-12-12 22:44:56 +00:00
Taliesin Sisson e36051d394 Pattern for infrastructure changed to quote filename and execute file with ampersand as everything is run in powershell now
Handle powershell commands by specifying any extra infrastructure around running scripts inside of ExecuteCommand and ElevatedExecuteCommand
2016-12-12 22:44:55 +00:00
Taliesin Sisson d61513bf77 Encode powershell using utf8
Fix a bug in the size of string that was returned when decoding a base64 string
Added tests around encoding and decoding powershell scripts. Used [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes('powershell commands')) | clip to generate what base 64 strings should look like
2016-12-12 22:44:54 +00:00
Taliesin Sisson 17597b48e1 Base64 encode powershell to avoid any necessary escaping 2016-12-12 22:44:54 +00:00
Taliesin Sisson 5d5809b27e Make hiding of progress backward compatible with old versions of powershell 2016-12-12 22:44:48 +00:00
Taliesin Sisson e8c2b49be8 Use correct quotation of variables 2016-12-12 22:44:34 +00:00
Taliesin Sisson 4b394c8563 Write output will put ouput from function, so we don't want to be getting line from output of function
Fix unit tests for not showing progress stream when using powershell
Ensure that progress stream does not get leaked into stdout
Using Write-Output instead of Write-Host since PS v5 now leaks the host stream to stderr
2016-12-12 22:44:33 +00:00
Taliesin Sisson c42cb88ddd Using Write-Output instead of Write-Host since PS v5 now leaks the host stream to stderr 2016-12-12 22:44:32 +00:00
Taliesin Sisson cd6213eb55 Seems like we do need to escape the double quote 2016-12-12 22:44:25 +00:00
Taliesin Sisson 15137310a7 Must escape string formatting for string fmt 2016-12-12 22:44:20 +00:00
Taliesin Sisson 5285a819dd Quoting of powershell commands and associated tests 2016-12-12 22:44:19 +00:00
Taliesin Sisson 3051ea6633 Quote powershell so that it does not try to interpret command to be run
Get VName out of state. This allows template replacement to be run on vmname
2016-12-12 22:44:10 +00:00
Taliesin Sisson 6c3030c73a Add a little safety around variables that are passed into provisioner. 2016-12-12 22:44:10 +00:00
Matthew Hooker b49be38d74 Merge pull request #4210 from yoctocloud/fixes
various fixes
2016-12-12 12:33:19 -08:00
Matthew Hooker c510988cbf Merge pull request #4209 from bhcleek/ansible-winrm
provisioner/ansible: assume scp target is file (resolves winrm incompatibility)
2016-12-08 22:37:41 -08:00
Patrick Decat 5dd7fb11f4 Saltstack bootstrapping: fallback on wget if curl failed for any reason (such as not being installed) 2016-12-02 20:02:22 +01:00
Vasiliy Tolstov 00ebe9e1d3 various fixes
Signed-off-by: Vasiliy Tolstov <v.tolstov@selfip.ru>
2016-11-29 14:55:44 +03:00
Billie Cleek f5ca0de225 provisioner/ansible: assume scp target is file
Assume the scp target is a file instead of a directory. Assuming the scp
target is a file instead of a directory allows uploading files to a node
being provisioned with the ssh communciator using sftp and with the
winrm communicator. It is fully compatible with ansible; ansible
communicators only allow for files (never directories) to be uploaded
(when the copy module is used to upload a directory, ansible walks the
directory and uploads files one at a time).

Update documentation to explain how to provision a Windows image.

Extend tests that use ssh to communicate with the node to include single
files, recursive copies, and content-only recursive copies.

Add test to verify support for the winrm communicator.

Remove the err argument from adapter.scpExec, because it was unused.

Fixes #3911
2016-11-26 14:40:39 -08:00
Matthew Hooker 12176b6afc
provisioner/shell: treat disconnects as retryable. 2016-11-22 15:59:40 -08:00
Jasper Siepkes 200aa74e78 Added support for passing arguments to salt-call. 2016-11-11 15:15:16 +01:00
Rickard von Essen a616c3da3c
provisioner/ansible: Move info messages to log
Make the ansible provisioner less noisy by moving most messages to the
log instead of ui print outs.

Closes #4117
2016-11-05 14:25:45 +01:00
Matthew Hooker d920b3fbf4 run gofmt 2016-11-01 14:08:04 -07:00
Rickard von Essen f17bd30070 Revert "Removed escaped quotes in non-elevated powershell invocation"
This reverts commit 1b186f1613.
2016-10-26 21:12:11 +02:00
Rickard von Essen 3b42d28cce Merge pull request #4014 from mexisme/feature/puppet-bin-dir
privisioner/puppet: Add `puppet_bin_dir` option.
2016-10-22 14:48:45 +02:00
Rickard von Essen 3361da82d4
Added trailing slash after puppet_bin_dir. 2016-10-22 14:34:34 +02:00
Matthew Hooker 892d5e82c9 expect_disconnect option
provisioner/shell: Adds option to fail if the remote server disconnects
us.
2016-10-21 11:39:03 -07:00
Matthew Hooker a1ef6398c3 Merge pull request #3371 from simonguest/powershell-envvars-fix
Removed escaped quotes in non-elevated powershell invocation
2016-10-19 18:50:39 -07:00
mexisme 314a4f4bbf Add Puppet Bin Dir to puppet-server provisioner 2016-10-16 02:50:37 +13:00
mexisme 6f9294095f Add Puppet Bin Dir to puppet-masterless provisioner 2016-10-15 22:39:50 +13:00
Matthew Hooker d8439b0034 Merge pull request #3971 from mitchellh/fix3486
change chef-solo provisioner staging directory
2016-10-14 15:51:26 -07:00
Rickard von Essen 3c8dabba9e Fixed formatting 2016-10-11 23:43:50 +02:00
Matthew Hooker 83131db4b8 Merge pull request #3776 from curiositycasualty/master
Add custom_state config to salt provisioner
2016-10-07 17:59:52 -07:00
Matthew Hooker 2ae1b83b15 change chef-solo provisioner staging directory
Have the staging directory be called `packer-chef-solo`, which is what
is given in docs. Closes #3486
2016-10-07 17:24:30 -07:00
Rickard von Essen 51a9a51699 Update winrm and winrmcp dependencies
Updated winrm and winrmcp dependencies. Relevant unit and acceptance tests passed successfully.

shell.Execute didn't return a Command object.

See f1bcf36a69/winrmcp/cp.go (L167) and 54ea5d0147/winrm/shell.go (L10-L22) respectively.

Closes #3763

Original patch by: Philipp Kosel <philipp.kosel@gmail.com>
2016-10-03 13:48:29 -07:00
Matthew Hooker a8e57d83d2 gofmt project.
noticed many unrelated changes being added to patches because of gofmt.

ran `find . -not -path "./vendor/*" -name "*.go" -exec gofmt -w {} \;`
2016-09-29 14:13:06 -07:00
Matthew Hooker efa594bebe Merge pull request #3899 from pengkh/f-file-provisioner
continue add support for file-provisioner to allow directory downloa…
2016-09-22 18:32:57 -07:00
开恒 96a637684b fix #3897
bug fix for file-provisioner download file, including unit-test code.
2016-09-19 10:36:18 +08:00
nouney 59dac451a5 provisioner/file: add "generated" key to allow files created on-the-fly. 2016-09-15 22:15:56 +02:00
Billie H. Cleek f760ab2fd8 Make SCP the default for provisioner/ansible
Add a new option, `use_sftp` to the ansible provisioner. It's default
value is false; ansible provisioner will use SCP by default.

Refactor to consistently set all configure options for ansible
provisioner in the Prepare step.

Remove incorrect information about `ANSIBLE_HOST_KEY_CHECKING=False`
being set when `ansible_env_vars` is not set in the packer template.

Update BATS tests for the ansible provisioner to actually check that the
fetched directory contains the contents expected. This revealed a
problem with the all_options template that required adding a host to the
hosts list in the test playbook.
2016-09-11 23:58:31 -07:00
Billie H. Cleek e6a0e523e2 refactor sftp subsystem request handling
Refactor the sftp subsystem request handling to make it more similar to
an exec request. This simplifies and improves the readability of the
code.
2016-09-11 23:58:31 -07:00
Billie H. Cleek da223b9539 add scp support to ansible provisioner
Handle running `scp -t` and `scp -f` exec requests in the
ansible-provisioner's SSH
server to allow Ansible to use SCP so that SFTP doesn't have to be
installed on the node.

Update the BATS tests to test the ansible provisioner.
2016-09-11 23:58:31 -07:00
Spencer Owen 9963bfcd42 removes unneeded white space 2016-09-01 13:39:44 -06:00
Spencer Owen 7fdd303641 Installs 64bit chef on windows if available
Resolves #3847

- Changes linux install url to new omnitruck.chef.io url. 
- Changes powershell install to use omnitruck url instead of hard coded to 32bit msi install.
2016-09-01 13:23:08 -06:00
Rickard von Essen d1e38052f7 Merge pull request #3350 from JoakimLofgren/add-support-for-ansible-galaxy
Add support for ansible-galaxy
2016-09-01 20:51:17 +02:00
Billie Cleek 023f2edde8 add better logging and error handling to ansible provisioner (#3477) 2016-08-24 19:53:39 +02:00
Isa bb2dd6e2b2 add custom_state config to salt provisioner 2016-08-03 12:56:51 -07:00
Chris Bednarski 32cbb515b5 Merge pull request #3692 from mohae/3474-file-mkdir-all
3474 file mkdir all
2016-07-07 16:44:15 -07:00
Joel Scoble 94d158b0b7 remove debug fmt.Print from test 2016-07-07 18:12:54 -05:00
Ricard Clau 049fb2d9c1 actually check for errors in functional tests 2016-07-07 20:01:23 +01:00
Ricard Clau 0c81e49f83 Adding a functional test with an Ansible message very long 2016-07-07 01:12:57 +01:00
Chris Bednarski 664e640257 Merge pull request #3392 from msteinhoff/fix-ansible-provisioner-long-lines
Fix Scanner buffer too long error in ansible-remote provisioner
2016-07-06 15:27:57 -07:00
Joel Scoble 999b8b2ed0 file provisioner: download should create all dirs in the destination path 2016-07-06 15:42:26 -05:00
Jamie Snell 7b3224f3c7 rename KnifeChefTemplate to KnifeTemplate 2016-06-14 13:42:53 -05:00
Jamie Snell 4847e891b0 Fix knife clean-up run on windows 2016-06-14 13:34:25 -05:00
Tom Asquith 40aa2b9973 added support for specifying an execute command to the puppet-server provisioner. 2016-06-13 14:12:28 +01:00
Billie Cleek 49067e732a append ANSIBLE_HOST_KEY_CHECKING correctly (#3568)
Append the ANSIBLE_HOST_KEY_CHECKING environment variable correctly
regardless of whether the template specifies some environment variables.
2016-05-24 15:34:51 -07:00
Justin Nauman f2b0fabe66 Fixes #3466 - Remote path needs to be set prior to config interpolation (#3468) 2016-04-29 19:21:27 -07:00
Ian Duffy 7e653370b7 Seperate remote_path into remote_folder and remote_script. (#3462)
Commonly /tmp is set as noexec, as a result packer scripts
fail to run. In order to get around this one can set a
remote_path, whoever, remote path requires full filename
and path.

By making remote_path a combination of
remote_folder/remote_script we can change remote_folder
and keep the default script_nnn.sh

Signed-off-by: Ian Duffy <ian@ianduffy.ie>
2016-04-26 16:04:29 -07:00
Mario Steinhoff b5f6e379f0 Fix Scanner buffer too long error in ansible-remote provisioner
Ansible may produce very long lines which Scanner can not handle. This
replaces the Scanner with a Reader and uses the ReadString method to
read an arbitrary large line from the ansible-playbook stdout pipe.
2016-03-28 21:27:42 +02:00
Simon Guest 1b186f1613 Removed escaped quotes in non-elevated powershell invocation 2016-03-20 20:28:08 -07:00
Joakim Löfgren 1172e670c0 Add support for ansible-galaxy
This adds "galaxy_file" to the options

Implement #3301
2016-03-14 18:26:56 +01:00
Keyan Pishdadian f3811cb99d Add ignore_exit_codes param for puppet-masterless provisioner 2016-03-13 23:39:18 -04:00
Rickard von Essen d59844f0d1 Determine current user without CGO. 2016-03-07 13:35:24 +01:00
Rickard von Essen 7369841e63 Ansible: add the support for specifying ansible_user
Closes #3273
2016-03-07 13:35:24 +01:00
Rickard von Essen d6716f6ee1 Ansible: don't use deprecated ssh options when ver above 2.0
Ansible 2.0 deprecated ansible_ssh_user, ansible_ssh_port, ansible_ssh_host
instead use ansible_user, ansible_port, and ansible_host in the
inventory file.

Closes #3275
2016-03-07 13:26:22 +01:00
Rickard von Essen f823725e53 Ansible: os.Environ() should always be passed to the ansible command.
Fixes GH-3271

Regression introduced in GH-3203
2016-02-26 20:49:37 +01:00
Vespian 4750da3457 Add empty_groups param to ansible provisioner 2016-02-19 23:46:50 +01:00
Marat Bakeev 2791542171 Allow specifying environment variables for ansible provisioner 2016-02-15 13:07:02 +13:00
Chris Bednarski 6dd02e7912 Update ansible test to use the new Downloader interface 2016-02-12 14:53:23 -08:00
Vasiliy Tolstov feee19e4ed file provisioner improvements
* allow specify source/destination as dir
* allow specify many files as source

Signed-off-by: Vasiliy Tolstov <v.tolstov@selfip.ru>
2016-02-12 11:48:28 -08:00
Chris Bednarski d8aaf6175f Merge pull request #2470 from jsoriano/puppet-masterless-clean-staging
Puppet masterless provisioner optionally cleans staging directory
2016-02-11 17:39:35 -08:00
Chris Bednarski 3ae867446d Merge pull request #2660 from mafrosis/saltp
Salt provisioner updates
2016-02-11 16:37:06 -08:00
Billie H. Cleek 0cd54ed19e add options to configure host alias and groups 2016-02-10 23:33:14 -08:00
Chris Bednarski a6552f7c75 Merge pull request #3166 from ephemeralsnow/master
Add chmod to chef-solo provisioner
2016-02-10 19:23:47 -08:00
Billie Cleek a5ab53bf5e update ansible tests
Update tests to account for changes made in #3149
2016-02-10 14:16:02 -08:00
Billie Cleek a23610ef41 cleanup ansible provisioner key generation
* Clearly separate host signer and user key generation into separate
  functions and data structures.

* Remove inaccurate comment about needing to specify both files if
  either one is specified.

* Rename parameters for clarity according to their meaning to the
  callee.

* Style the code with gofmt.
2016-02-10 14:16:02 -08:00
ephemeralsnow 3de8561a75 Add chmod to chef-solo provisioner 2016-02-09 20:06:26 +09:00
Chris Bednarski 569e6cc464 go fmt 2016-02-08 17:34:06 -08:00
Marat Bakeev c95b2b483f Merge branch ansible-provisioner of https://github.com/dkhenry/packer 2016-02-05 15:40:17 +13:00
Chris Bednarski 114bddfe36 Merge branch 'master' of https://github.com/mitchellh/packer 2016-02-01 13:28:56 -08:00
Chris Bednarski 1f6749096a Restore missing interpolation after merging ansible remote; fixes #3138 2016-02-01 13:28:49 -08:00
Billie H. Cleek bf3c294326 listen on system chosen port
Change the default for LocalPort to "0", so that the listener will be a
system chosen port.
2016-01-28 22:22:12 -08:00
Chris Bednarski 15f99a4aee Merge branch 'ansible-provisioner' of https://github.com/bhcleek/packer into f-ansible 2016-01-28 15:16:54 -08:00
Chris Bednarski 87532b1b00 Merge branch 'chef-provisioner-windows' of https://github.com/sneal/packer into f-chef-provisioner-windows 2016-01-28 14:55:17 -08:00
Matt Black 33071150c1 Salt provisioner: option to set logging level on Salt highstate run 2016-01-26 13:09:15 +00:00
Matt Black 9ccf298be9 Salt provisioner: option to ignore salt highstate failures fixes #2486 2016-01-26 13:09:15 +00:00
Matt Black 5cd15b52c5 Salt provisioner: dynamic command line args passed onto salt-call fixes #2652 2016-01-26 13:09:15 +00:00
Matt Black 7cb802f8a0 Salt provisioner: improved inputs validation 2016-01-26 13:09:15 +00:00
Chris Bednarski 3eabc6253d Merge pull request #2653 from evertrue/evertrue/eherot/add_data_bag_secret_to_chef_client
Chef-client provisioner: Add encrypted data bag secret path (Fixes #1945)
2016-01-13 13:59:48 -08:00
Billie Cleek 77c48678d6 eliminate possible race conditions
Eliminate race-y use of the packer.Ui interface by wrapping it in a
concurrency-safe implementation.
2015-12-19 15:15:19 -08:00
Billie Cleek d73e75a7cf fix panic when connection is closed before packer send Shutdown 2015-12-19 12:15:04 -08:00
David Zanetti 2668747c71 Rename noclean shell option to skip_clean, per pull feedback 2015-11-19 16:02:45 +13:00
David Zanetti 3d23655f2f Add "noclean" boolean to shell provisioner. This stops the provisioner from
attempting to remove helper scripts it creates. As noted on #2803 this can
be useful when deleting the build user from an AMI or other template.
2015-11-16 16:37:09 +13:00
Trevor Suarez f006a83c95 Fixing the bug found in the tests 2015-11-03 18:19:03 -05:00
Trevor Suarez 6ca02286d4 Test for when the config parameter isn't passed 2015-11-03 18:18:24 -05:00
Trevor Suarez 627a8fe819 Renaming the config parameter from "options"
to "extra_arguments"
2015-11-03 17:55:03 -05:00
Trevor Suarez 4ea7e3473d Testing the new options argument during the actual
call to `Provision()`
2015-11-03 15:01:16 -05:00
Trevor Suarez 84e1b387c4 New test for preparing the new config parameter 2015-11-03 14:36:04 -05:00
Trevor Suarez ebed9e53fb Adding new "Options" configuration parameter for
the puppet-masterless provisioner, to allow for specifying additional
options to pass to the execute command
2015-11-03 12:30:55 -05:00
Billie Cleek 2dc9e0af3f fix `go vet` identified issues 2015-10-31 10:39:33 -07:00
Billie H. Cleek 5366393f9f fix tests 2015-10-31 10:39:33 -07:00
Billie H. Cleek cc8ca3098e add ansible provisioner 2015-10-31 10:39:33 -07:00
Mark Peek 43cb854b3e Merge pull request #2568 from pecigonzalo/f-winrm-reboot
Add reboot checks before moving out of the reboot sequence for WinRM
2015-10-26 16:57:13 -07:00
Mark Peek c48548b3bb go fmt 2015-10-18 11:13:09 -07:00
Mark Peek 1aad5cf6d5 provisioner/windows-restart: remove race in test 2015-10-12 13:20:18 -07:00
Mark Peek d87b68efe8 Syncronize cancellation in windows-restart tests
Two windows-restart tests would timeout and fail due to the cancellation
thread firing before the cancel object was created. This change syncronizes
the start of the threads to prevent this from occurring.
2015-10-10 14:32:39 -07:00
Shawn Neal 357e494ee3 Fix failing Windows guest command tests 2015-10-01 10:04:59 -07:00
Shawn Neal 8014dac742 Add Windows support to Chef provisioners
- Add guest os type to change the default Chef-Solo and Chef-Client provisioner behavior. Paths, commands etc.
- Change Chef installation download location to chef.io domain
- Add encrypted data bag secret configuration
2015-10-01 10:04:59 -07:00
Shawn Neal affebcda86 Windows Powershell commands need to specify shell
The WinRM communicator defaults to the regular Windows cmd shell so we need to tell Packer to use Powershell when running these guest commands.
2015-10-01 10:02:11 -07:00
Shawn Neal 67f6d6cdb5 Adds provisioner guest commands abstraction
Provisioners often needs to perform command line operations on guests that may have different syntax and shells. The GuestCommands type abstracts these away so provisioners can avoid littering branching logic all over the place.
2015-10-01 10:02:10 -07:00
Gonzalo Peci f01f62dc88 Add specific exit codes listed on https://msdn.microsoft.com/en-us/library/windows/desktop/ms681383(v=vs.85).aspx 2015-08-28 09:55:14 +12:00
Gonzalo Peci 8bd3e62853 Because the new functionality makes the ```waitForRestart()``` function run commands it modifies the value of ```comm.StartCmd.Command``` that is being checked, we need to implement the same workaround that is being used for the ```waitForCommunicator()``` function. This should make the test work again and retain functionality. 2015-08-28 09:54:59 +12:00
Gonzalo Peci 08359e409a Revert the shutdown command with new parameters as this will return proper exit codes. This will work in the same way as restart-computer -force when using ```shutdown /r /f /t 0```.
Note:The WinRM library does not return the exit code currently, this will be implemented on https://github.com/masterzen/winrm/pull/26
2015-08-28 09:54:39 +12:00
Gonzalo Peci 70083fc869 Add reboot checks before moving out of the reboot. 2015-08-28 09:54:24 +12:00
Tim Smith 72e8119233 Download chef from chef.io 2015-08-25 21:53:50 -07:00
Eric Herot f625c985af Chef-client provisioner: Add encrypted data bag secret support (Fixes #1945) 2015-08-21 16:05:47 -07:00
Chris Bednarski abb67fdd79 Fix govet issues 2015-08-05 19:41:29 -07:00
Chris Bednarski 84abbc2fe2 Merge pull request #2519 from BayanGroup/salt-remote-dirs
Add options to specify salt remote dirs
2015-07-30 19:06:59 -07:00
Chris Bednarski c04feb77b1 Merge pull request #2520 from BayanGroup/salt-ensure-dir-exists
Ensure that `/etc/salt` exists
2015-07-30 19:03:34 -07:00
Chris Bednarski c04e442203 Merge pull request #2518 from BayanGroup/fix-error-messages
Fix semantic errors in messages
2015-07-28 18:36:21 -07:00
AmirAli Moinfar eba0e9eaf8 Ensure that `/etc/salt` exists
Make sure that directory `/etc/salt` exists before copying salt
minion file.
2015-07-28 10:40:09 +04:30
AmirAli Moinfar 769c82b171 Support for setting salt remote directory
* It is possible to set remote salt tree through `remote_state_tree` argument.
* It is possible to set remote pillar root through `remote_pillar_roots` argument.
* Directories `remote_state_tree` and `remote_pillar_roots` are emptied before use.
2015-07-28 10:37:52 +04:30
AmirAli Moinfar f90f2f685d Fix semantic errors in messages 2015-07-28 10:34:13 +04:30
Gonzalo Peci 21107b0027 Fix wrong command type being used when running elevated provisioner. 2015-07-28 16:14:32 +12:00
Chris Bednarski 715662f60b Reformat 2015-07-27 16:42:06 -07:00
Jaime Soriano Pastor be8c9dddf2 Puppet masterless provisioner optionally cleans staging directory
When puppet is executed in masterless mode it didn't remove
staging directory, this can be a problem because it leaves all
the modules and manifests in the built image.
This is specially problematic when building docker images as they
can be left in the layers unless an specific cleanup is done after
running puppet.

This change adds a flag `clean_staging_directory` to puppet
masterless provisioner so it takes care of this cleanup.
2015-07-17 22:24:23 +02:00
Chris Bednarski 56745e14f5 manifest_file can now be a folder or file.pp and we will upload it correctly in either case 2015-07-16 19:15:16 -07:00
Schreiter, Wulf-Thilo 18438cf291 Add knife config by template
Since the chef-client provisioner is cleaning the node and client at the chef-server from the provisioned node
it needs to have a flexible configuration

This is replacing the used knife flags: -s '<chef-server-url>' -k '/tmp/packer-chef-client/client.pem' -u '<client-name>'
and puts their values into a generated knife.rb

Additionally the knife.rb may include the optional ssl_verify_mode attribute to enable the verify mode verify_none

Background:

When deleting node and client to a self-hosted chef-server using self signed cerfiticates the usage of

    knife node delete <node-name> -y -s '<chef-server-url>' -k '/tmp/packer-chef-client/client.pem' -u '<client-name>'

will lead into a ssl verification failure.

The error output of the knife call is somthing like:

    2015/06/24 12:29:17 ui:     docker: WARNING: No knife configuration file found
    docker: WARNING: No knife configuration file found
    2015/06/24 12:29:17 ui:     docker: ERROR: SSL Validation failure connecting to host: 172.16.117.63 - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B:
    certificate verify failed
    docker: ERROR: SSL Validation failure connecting to host: 172.16.117.63 - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
    2015/06/24 12:29:17 ui:     docker: ERROR: Could not establish a secure connection to the server.
    docker: ERROR: Could not establish a secure connection to the server.
    2015/06/24 12:29:17 ui:     docker: Use 'knife ssl check' to troubleshoot your SSL configuration.
    docker: Use 'knife ssl check' to troubleshoot your SSL configuration.
    2015/06/24 12:29:17 ui:     docker: If your Chef Server uses a self-signed certificate, you can use
    docker: If your Chef Server uses a self-signed certificate, you can use
    2015/06/24 12:29:17 ui:     docker: 'knife ssl fetch' to make knife trust the server's certificates.
    docker: 'knife ssl fetch' to make knife trust the server's certificates.
    2015/06/24 12:29:17 ui:     docker:
    docker:
    2015/06/24 12:29:17 ui:     docker: Original Exception: OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
    docker: Original Exception: OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
    2015/06/24 12:29:17 packer-builder-docker: 2015/06/24 12:29:17 Executed command exit status: 100
2015-06-24 15:22:59 +02:00
Vasiliy Tolstov 036c9ddf7c fix file download provisioner
when file used with download direction we don't need
to check source on builder because it on machine.

Signed-off-by: Vasiliy Tolstov <v.tolstov@selfip.ru>
2015-06-23 12:27:27 +03:00
Mitchell Hashimoto b77042dc85 provisioner/shell-local: fix vet 2015-06-22 15:01:22 -07:00
Mitchell Hashimoto 5db4d7c01f fmt 2015-06-22 12:37:52 -07:00
Mitchell Hashimoto 288b9a70f6 Merge pull request #1657 from njhartwell/master
Adding disable sudo support to salt masterless
2015-06-22 12:37:30 -07:00
Mitchell Hashimoto 11e325738b Merge branch 'ansible-inventory-groups' of https://github.com/lyrixx/packer into lyrixx-ansible-inventory-groups 2015-06-22 12:35:50 -07:00
Mitchell Hashimoto 7c8e86c9c5 provisioner/*: fix interpolation context 2015-06-22 12:26:54 -07:00
Mitchell Hashimoto 0e8036a023 Merge pull request #2283 from mitchellh/f-local-shell
Local shell provisioner
2015-06-22 12:18:48 -07:00
Mitchell Hashimoto 6ec428cc38 provisioner/shell: retry file delete [GH-2286] 2015-06-21 19:53:43 -07:00
Mitchell Hashimoto 2dc6155c30 provisioner/shell-local: tests 2015-06-19 15:27:44 -07:00
Mitchell Hashimoto 80fc1f032b provisioner/shell-local: a first stab 2015-06-19 15:06:06 -07:00
Mitchell Hashimoto 59766067c0 provisioner/windows-restart: make test pass on slow machines 2015-06-19 06:13:51 +02:00
Mitchell Hashimoto 873bc7471f Merge pull request #2280 from flopex/ignore_exit_codes
provisioner/puppet-server: Add ignore exit codes option
2015-06-19 06:08:29 +02:00
Mitchell Hashimoto 4463083a60 provisioner/shell: randomize default script name 2015-06-18 10:38:23 +02:00
Mitchell Hashimoto b2609db395 provisioner/windows-restart: fix potential panic case 2015-06-17 18:22:27 +02:00
Mitchell Hashimoto 7711e07f05 provisioner/windows-restart: test fix 2015-06-17 17:56:31 +02:00
Mitchell Hashimoto 49769a17c2 Merge pull request #2243 from mitchellh/f-powershell
Windows provisioners: powershell, windows-shell, windows-restart
2015-06-17 17:51:42 +02:00
Mitchell Hashimoto 5ee02b09b2 Merge pull request #2258 from mitchellh/b-puppet-manifest-base
provisioner/puppet-masterless: only base if manifest is a file [GH-1933]
2015-06-17 17:51:07 +02:00
Gonzalo Peci af4d8b99b4 Add quickfix to restart provisioner as existing one was not working.
For more information read https://github.com/mitchellh/packer/pull/2243
2015-06-17 12:29:10 +12:00
Mitchell Hashimoto 8990c38d5e provisioner/puppet-masterless: deprecation warning 2015-06-16 09:38:24 -07:00
Mitchell Hashimoto 6cda4fa548 Merge branch 'default_facts' of https://github.com/danzilio/packer into danzilio-default_facts 2015-06-15 15:29:23 -07:00
Mitchell Hashimoto 65916514c0 Merge branch 'puppet_working_dir' of https://github.com/ColinHebert/packer into ColinHebert-puppet_working_dir 2015-06-15 15:17:45 -07:00
Mitchell Hashimoto 5d38ee939b Merge pull request #2259 from mitchellh/b-shell-delete
provisioner/shell: remove file after exec [GH-1536]
2015-06-15 15:15:51 -07:00
Mitchell Hashimoto 6c80228661 provisioner/shell: missing error arg 2015-06-15 15:11:08 -07:00
Alexander Golovko 500d83b673 add download support to file provisioner 2015-06-15 15:08:56 -07:00
Mitchell Hashimoto a235419c7d provisioner/shell: remove file after exec [GH-1536] 2015-06-15 15:02:59 -07:00
Mitchell Hashimoto 742e556836 provisioner/puppet-masterless: only base if manifest is a file [GH-1933] 2015-06-15 14:44:54 -07:00
Mitchell Hashimoto 711dfc9d0a provisioner/chef: show command in output 2015-06-15 14:35:54 -07:00
Mitchell Hashimoto 14787fd4cc provisioner/chef-client: run cleanup on node [GH-1295] 2015-06-15 14:29:12 -07:00
Mitchell Hashimoto 106c9403ed provisioner/chef-client: chmod the directories 2015-06-15 13:41:07 -07:00
Mitchell Hashimoto bee3b59c40 Merge branch 'chef-client-client_key' of https://github.com/ameir/packer into ameir-chef-client-client_key 2015-06-15 13:40:33 -07:00
Mitchell Hashimoto ab6a330d86 provisioner/*: fix go vet 2015-06-14 12:39:39 -07:00
Mitchell Hashimoto 339a4ccdab provisioner/windows-shell 2015-06-14 11:23:29 -07:00
Mitchell Hashimoto 840ddb4f20 provisioner/windows-restart 2015-06-14 11:14:47 -07:00
Mitchell Hashimoto 040ff0706d provisioner/powershell 2015-06-14 11:01:28 -07:00
Mitchell Hashimoto c549fce85e provisioner/shell: escape single quotes [GH-2067] 2015-06-13 14:11:20 -04:00
Mitchell Hashimoto 7830d78d06 provisioner/shell: fix tests 2015-06-11 17:24:02 -04:00
Mitchell Hashimoto b28f946be9 Merge pull request #2210 from mitchellh/b-set-e
provisioner/shell: set -e for inline [GH-2069]
2015-06-11 17:19:43 -04:00
Mitchell Hashimoto 3ed73852be provisioner/shell: set -e on the shebang itself 2015-06-11 17:19:23 -04:00
Mitchell Hashimoto a995df352e provisioner/shell: uploaded script should be 0755 [GH-1708] 2015-06-10 21:18:46 -07:00
Mitchell Hashimoto 952077ccb0 provisioner/shell: set -e for inline [GH-2069] 2015-06-10 21:02:22 -07:00
Mitchell Hashimoto 2b4df93f2f provisioner/*: interpolation 2015-05-27 14:50:20 -07:00
Mitchell Hashimoto c2381be44f provisioner/*: convert to interpolation 2015-05-27 14:41:47 -07:00
Francisco Lopez 758618ecaa Add ignore_exit_codes key for provisioner puppet-server 2015-05-14 15:05:44 -07:00