Commit Graph

89 Commits

Author SHA1 Message Date
Kyle Persohn
b300cac97b provisioner/chef: Support named run-lists for Policyfiles (#11215)
* provisioner/chef: Support named run-lists for Policyfiles

Add an optional argument for overriding the Chef Client's initial
run with a named run-list specified by the Policyfile. This is useful
for bootstrapping a node with a one-time setup recipe that deviates
from a policy's normal run-list.

* Update chef client cmd building per review feedback.
2017-01-19 09:03:45 +01:00
Mitchell Hashimoto
4b1d9cfd7d
communicator/ssh: don't share rand object to guarantee unique values
Fixes #10463

I'm really surprised this flew under the radar for years...

By having unique PRNGs, the SSH communicator could and would
generate identical ScriptPaths and two provisioners running in parallel
could overwrite each other and execute the same script. This would
happen because they're both seeded by the current time which could
potentially be identical if done in parallel...

Instead, we share the rand now so that the sequence is guaranteed
unique. As an extra measure of robustness, we also multiple by the PID
so that we're also protected against two processes at the same time.
2016-12-06 00:21:49 -08:00
Sam Dunne
628743b24c Add ability to skip chef registration
This change allows a user to skip the bootstrap stage for a machine.
2016-10-01 00:49:39 +02:00
Sander van Harmelen
c307dc9557 Accept both slices and strings in vault_json (#9114)
Fixes #9105 by allowing the `vault_json` to contain either slices or strings.

And fixes #8932 by changing to way we cleanup the user key.
2016-10-01 00:35:27 +02:00
Sander van Harmelen
968472a63e Support recreating clients and configuring Chef Vaults (#8577)
Fixes #3605 and adds the functionality suggested in PR #7440.

This PR is using a different appraoch that (IMHO) feels cleaner and (even more important) adds support for Windows at the same time.
2016-09-15 14:20:18 +02:00
Sander van Harmelen
4004790247 Make using ssl_verify_mode more robust (#7769)
And prettify the template output by removing additions empty lines.
2016-07-22 16:01:48 +02:00
James Nugent
8beafe25ae provisioner/file: Clean up temporary files 2016-07-08 19:35:00 +01:00
jorge.marey
9b065f32e2 Include content option for file provisioner
- Include new option in file provisioner. Now content or source can be
  provided. Content will create a temp file and copy there the contents.
- Later that file will be used as source.
- Include test to check that changes are working correctly.
2016-07-08 19:34:59 +01:00
Paul Hinze
579680cebc provisioner/remote-exec: Move script cleanup after command wait
The script cleanup step added in #5577 was positioned before the
`cmd.Wait()` call to ensure the command completes. This was causing
non-deterministic failures, especially for longer running scripts.

Fixes #5699
Fixes #5737
2016-03-21 10:49:32 -05:00
Paul Hinze
96ebf0af0e provisioner/remote-exec: Clear out scripts after uploading
Prevents residual script contents from remaining on machine.

Fixes #482
2016-03-11 10:25:11 -06:00
Ben
a97f1a557f Provide correct command to fetchChefCertificatesFunc
fetchChefCertificatesFunc expects the knife command path, not the chef command path.  Update the code to pass the correct command's path to the method.
2016-02-25 12:10:50 -07:00
Sander van Harmelen
ac0cbd400e Add attributes_json param for consistency
Add `attributes_json` param for both consistency and easier management
of deprecating the old `attributes` param.
2016-02-09 11:11:46 +01:00
Sander van Harmelen
79e2642dab Fix issue #4881
This fixes issue #4881 by adding an option to fetch the Chef SSL
certificates.
2016-02-04 15:31:24 +01:00
Sander van Harmelen
da927fcd08 Make the Chef attributes param also accept a raw JSON string
See the updated docs for more details and examples, but in short this
enables the `attributes` param from the Chef provisioner to accept a
raw JSON string.

Fixes #3074
Fixes #3572
2016-01-29 18:41:14 +01:00
Jason Riddle
ca39512fa7 Fix the failing chef provisioner test 2016-01-14 13:51:23 -05:00
Jason Riddle
5cb4b70e7e Add ENV['no_proxy'] to chef provisioner 2016-01-13 09:51:08 -05:00
Sander van Harmelen
986245c553 provisioner/chef: fixes #4262
This small tweak fixes #4262 by making sure files can be uploaded
correctly.
2016-01-09 15:56:49 +01:00
Sander van Harmelen
71ffb6caa0 Add the option to add arbitrary client.rb options
Fixes #3630
2016-01-09 00:42:02 +01:00
Petr Artamonov
76913703a9 modified to have less code and not to verify incoming string 2016-01-08 20:00:11 +01:00
Petr Artamonov
64f19c0dc3 enable reporting flag 2016-01-07 18:13:30 +01:00
Sander van Harmelen
b007d4f77a Revert changing path.Join() to filepath.Join() (PR #3896)
PR #3896 added support for passing keys by content, but in this same PR
all references to `path.Join()` where changed to `filepath.join()`.
There is however a significant difference between these two calls and
using the latter one now causes issues when running the Chef
provisioner on Windows (see issue #4039).
2015-11-24 14:40:46 +01:00
Paul Hinze
73ce6d184a chef: read key contents instead of paths
Builds on the work of #3846, shifting the Chef provisioner's
configuration options from `secret_key_path` and `validation_key_path`
over to `secret_key` and `validation_key`.
2015-11-12 16:11:44 -06:00
Joel Moss
b1d731bd6f [chef provisioning] When use_policyfile is given, the run list is not used, so don't require it 2015-10-14 19:05:38 +01:00
Radek Simko
f9efede852 gofmt files from recently merged PRs 2015-10-07 13:35:06 -07:00
Joel Moss
20362e7506 Added Policyfile support to the Chef provisioner
This Adds three new arguments `use_policyfile`, `policy_group` and `policy_name` to the Chef
provisioner. If `use_policyfile` == true, then the other arguments are required.
2015-09-26 00:56:24 +01:00
Sander van Harmelen
162568e682 Fixes issue #2872
Still not a 100% fix, but that would require some more hacking in core
TF. If time permits I’ll have a look at that later on… But for now this
is a good fix to be able to close #2872
2015-08-21 17:26:32 +02:00
Sander van Harmelen
885b4e9278 Updating the test accordingly... 2015-07-20 18:34:44 +02:00
Sander van Harmelen
df909ca3ca Fix an issue with sudo and hints
Fixes issue #2781
2015-07-20 18:31:32 +02:00
Sander van Harmelen
4a8ef78d33 Fixes #2676 by prefixing all Windows commands
By prefixing them with `cmd /c` it will work with both `winner` and
`ssh` connection types.

This PR also reverts some bad stringer changes made in PR #2673
2015-07-10 12:56:27 +02:00
Sander van Harmelen
97fd4f5b7d Tweaking the tests 2015-07-09 21:29:27 +02:00
Joshua Seidel
cda814d8b3 No need to do this as they both are in their own scope 2015-07-09 09:32:13 -04:00
Joshua Seidel
4070805fcd ran gofmt removed required, added IF 2015-07-09 09:05:12 -04:00
Joshua Seidel
61f47d440d correct space, fix reading of file 2015-07-08 20:06:37 -04:00
Joshua Seidel
090248fab1 fix errors 2015-07-08 19:41:38 -04:00
Joshua Seidel
cd58da773c remove unused if 2015-07-08 15:25:00 -04:00
Joshua Seidel
7f4a5ac413 fix if statement and condition 2015-07-08 15:09:17 -04:00
Joshua Seidel
6e21ca50a0 add chef secret key 2015-07-08 14:52:23 -04:00
Jeroen de Korte
1c14bfd04d Added the HTTPS proxy option 2015-07-03 16:27:52 +02:00
Jeroen de Korte
007ab6e503 Fixed the http_proxy 2015-07-03 15:04:58 +02:00
Sander van Harmelen
3d03f4b2aa Fixing the tests 2015-06-30 14:13:36 +02:00
Sander van Harmelen
b7e981c6d1 Fixes issue #2568
When surrounding the version with quotes, even no version (an empty
string) will be accepted as parameter. The install.sh script treats an
empty version string the same as no when version is set. So it will
then just use the latest available version.
2015-06-30 14:03:06 +02:00
Sander van Harmelen
61517f68b1 Add an ohai_hints option to upload hint files
This option takes a list of hints that will be uploaded to the new node
before starting the initial Chef run.
2015-06-25 16:32:36 +02:00
Sander van Harmelen
2690d87d39 Add an option to specifically specify the target OS
Before this option (`os_type`) the provisioner would use the connection
type to determine the targeted OS. When not supplying a value for
`os_type`, it will fall back to the old behaviour, so this is full BC.
2015-06-25 14:29:48 +02:00
Sander van Harmelen
4f6e610ff9 Improve the decoding logic to prevent parameter not found errors
We need to decode both the Raw config and the parsed Config to make
sure all set keys are visible. Otherwise keys that will need to be
interpolated later, will be missing causing the validation to fail.
2015-06-03 14:45:30 +02:00
Sander van Harmelen
be56a3a02e Fix interpolation in the Chef provisioner
Turns out to be a pretty obvious bug with a simple fix…
2015-06-01 15:29:43 +02:00
Sam Boyer
b82bd0c280 Condense switch fallthroughs into expr lists 2015-05-26 21:52:36 -04:00
Sander van Harmelen
11314a3d71 Tweaking a few minor things according to the feedback on GH 2015-05-12 10:37:38 +02:00
Sander van Harmelen
a8dacede24 Improved some logging...
I added a debug log line in the last commit, only to find out it’s now
logging the same info twice. So removed the double entry and tweaked
the existing once.
2015-05-11 15:18:32 +02:00
Sander van Harmelen
2a5fffc24d Small textual update... 2015-05-08 23:27:12 +02:00
Sander van Harmelen
c19d92fb67 Refactored quite a few things after review...
Also renamed the provisioner to just `chef` as it’s out intention to
end up with one provisioner for all types of `chef` clients.
2015-05-08 23:25:24 +02:00