Commit Graph

768 Commits

Author SHA1 Message Date
Matt Dainty 19bd28cd72 Fix/add tests 2018-12-07 16:23:03 +00:00
Matt Dainty 2e4b00f59d Refactor powershell provisioner
Use the common elevated code instead.
2018-12-07 15:30:50 +00:00
Matt Dainty a42f8fac4d Elevated support for puppet-masterless provisioner
This should fix #5478.
2018-12-07 11:08:11 +00:00
Adrien Delorme 2283efff79
Merge pull request #7071 from aspectcapital/ignore-pending-reboots
Ignore an already-scheduled reboot
2018-12-07 11:03:55 +01:00
Matt Dainty 0192289d68 Drop exit code 1717 2018-12-07 09:45:50 +00:00
Matt Dainty 11be4ffc4b Attempt at generalising elevated support
Refactor puppet-server provisioner to use it.
2018-12-06 18:00:22 +00:00
Megan Marsh e69391f28b save users some bash scripting by exposing IP and port separately as well as together 2018-12-06 09:29:07 -08:00
Matt Dainty a7b407eab6 Naive support for elevated support for puppet-server provisioner
This commit just lifts the various bits out of the powershell
provisioner.
2018-12-06 15:09:57 +00:00
Matt Dainty 5fed453047 Ignore an already-scheduled reboot
If the previous provisioner already scheduled a reboot don't error we
can't schedule another one.
2018-12-05 15:43:22 +00:00
Megan Marsh fa6eb3fdea reverts 406bf9c4aad7c925c3f5a837fe7f9c71169af098; this was incorrect interpretation of the intent of the inventoryDirectory template option 2018-12-03 16:08:47 -08:00
Megan Marsh 8a7ec456f1 use error groups so we can return errors 2018-11-30 10:46:40 -08:00
Megan Marsh e6477d13fb fix empty return 2018-11-29 15:22:26 -08:00
Megan Marsh a93721c54d add disable option to breakpoint provisioner 2018-11-29 15:09:14 -08:00
Megan Marsh ba25e68fe0 add a new breakpoint provisioner 2018-11-29 14:32:52 -08:00
Matt Dainty 412119c27e Fix powershell provisioner tests 2018-11-09 14:26:21 +00:00
Matt Dainty 3b519acebc Allow Powershell provisioner to use service accounts
Fixes #6104
2018-11-08 11:48:27 +00:00
Adrien Delorme 56fd98552e
removed space 2018-10-24 15:49:49 +02:00
Mark Meyer 31afd1c2f8 Add PauseAfter option to shell provisioner
Closes #6540
2018-10-24 14:04:08 +02:00
Adrien Delorme 7c63c322c7 make provisioner/ansible/provisioner_test.go invisible to windows 2018-10-16 18:40:07 +02:00
Megan Marsh 1d1729a5ff fix powershell tests to use new command 2018-10-12 09:54:27 -07:00
Megan Marsh a81d18cdab explicitly use set-variable to work around a bug some users saw where the command invocation would vail 2018-10-12 09:15:12 -07:00
Poddo 72391f8f4d
Update provisioner.go
Remove extra break statement that made it's way into the "reboot pending" loop when some logic was rearranged in 9fa47f5dad (diff-8bb0a16231863cd1487dd9a3d3792565)
2018-10-03 00:54:31 -05:00
Megan Marsh 7597f609b1 update winrmcp vendor and update error message in file provisioner to aid user who messes up file path name. update file provisioner docs 2018-09-21 14:51:32 -07:00
Megan Marsh 3f8407d95f Revert "Merge pull request #6700 from hashicorp/multi_progressbar"
This reverts commit 5470c08345, reversing
changes made to c427486bca.
2018-09-20 13:14:17 -07:00
Adrien Delorme dfeca9f0df split progressbars per object 2018-09-12 16:21:58 -07:00
Megan Marsh a0edaf6c46 Going to revert this change for now, becuase of potential issues that arise from calling Prepare() twice
Revert "use statebag instead of SetSharedState for winRM password"

This reverts commit b35acbd879.
2018-09-10 16:48:42 -07:00
Adrien Delorme bb59a70e8f progressbar: use int64 instead of uint64
* it's what's used for file sizes and used lib
2018-09-06 16:49:15 +02:00
Adrien Delorme 5b66069da0 tests: remove Ui stubs to use packer.NoopUi to deduplicate code 2018-09-06 15:53:59 +02:00
Adrien Delorme 7efe3cac3d todos 2018-09-06 15:53:59 +02:00
Adrien Delorme 9b07d7670e use no ops for ansible ui & MachineReadableUi 2018-09-06 15:53:59 +02:00
Adrien Delorme fd7cb47adc use proxy reader for download progress & stop storing total/current in downloaders 2018-09-06 15:53:59 +02:00
Adrien Delorme ddd96c513b first draft at self refreshing loading bar centralized/controlled by Ui 2018-09-06 15:53:59 +02:00
Adrien Delorme 61480f41dc fix some go vet issues in tests ( composite literal uses unkeyed fields ) 2018-08-31 11:54:12 +02:00
Megan Marsh 266a48a73a minor fixes for shell provisioner docs and logging 2018-08-30 14:36:14 -07:00
Megan Marsh ab13c73277 make varfile name unique and make sure to remove it from guest system if cleanup is true. 2018-08-30 11:02:56 -07:00
Megan Marsh 2c9a205f11 update shell provisioner tests 2018-08-29 11:10:49 -07:00
Megan Marsh cce13e3877 shell provisioner: add option to source env vars from a file 2018-08-29 11:10:49 -07:00
Megan Marsh b35acbd879 use statebag instead of SetSharedState for winRM password 2018-08-24 13:51:16 -07:00
Megan Marsh c51cd751d1 go back to using StartWithUI to prevent weird hangs during windows reboot 2018-08-23 16:15:50 -07:00
Megan Marsh 1f79b430ee
Merge pull request #6610 from hashicorp/filter_logs
Filter logs
2018-08-23 13:30:21 -07:00
Megan Marsh c1b50d365b
Merge pull request #5851 from arizvisa/multi-proto-progressbar
Add progress-bar to common/step_download.go
2018-08-21 15:08:22 -07:00
Megan Marsh 9fa47f5dad make windows restart provisioner work with ssh communicator 2018-08-21 11:45:18 -07:00
Ali Rizvi-Santiago cf9bbe3ecf Incorporated the hack demonstrated by @SwampDragons in order to deal with packer.rpc.Ui not exporting any information about what it's doing to anybody. 2018-08-20 21:55:18 -05:00
Ali Rizvi-Santiago 5726927cba Moved the progress bar out of packer.Ui and unlinked it out of all the packer.Ui implementations. Split up the terminal-related functions into a separate terminal.go and calculate the progress bar width by traversing through packer.Ui to avoid the issue with github.com/ugorji/go/codec serializing private members (or unsafe pointers) of structs. Shuffled some arguments around in getConsoleScreenBufferInfo in common/terminal_windows.go so that the interface forces the user to correctly declare a _CONSOLE_SCREEN_BUFFER_INFO type. 2018-08-20 21:55:18 -05:00
Ali Rizvi-Santiago 0f10032b3d Moved the progress bar from common to the packer.UI interface and refactored it so that the terminal width is calculated based on each interface which returns a custom progressbar specific to its ui. 2018-08-20 21:55:18 -05:00
Ali Rizvi-Santiago fd2fef8738 Added support for the progress bar to automatically determine its width using the minimum length from a packer.UI and the terminal dimensions via kernel32.GetConsoleScreenBufferInfo or an ioctl (TIOCGWINSZ) to "/dev/tty". 2018-08-20 21:55:18 -05:00
Megan Marsh ff6a039d5b replace scrubconfig with packer.LogSecretFilter.Set
filter winrm password from logs
Add new root-level packer template option, sensitive-variables, to tell us what user variables to mark sensitive.
2018-08-20 15:35:55 -07:00
Megan Marsh eb685b7140 remove duplicate code from chef provisioner 2018-08-07 10:01:06 -07:00
Megan Marsh a5a6b1ab58
Merge pull request #6501 from Wenzel/expose_ansible_packer_http_addr
Expose ansible packer_http_addr extra var
2018-07-18 17:18:46 -07:00
Megan Marsh e146973d08 change implementation to set winrm password in way that matches powershell and shell-local implementations; sanitize logs 2018-07-17 16:39:50 -07:00
Mathieu Tarral 3450b6fd6f ansible: expose packer_http_addr extra var 2018-07-17 19:58:07 +03:00
Levi 6646d42490 updated function calls to include buildname and changed variable names 2018-07-14 14:39:38 -04:00
Levi 68ec630fde added function to retreive winrm password from commonhelper 2018-07-14 11:25:04 -04:00
Levi 636cec8f2b added commonhelper import 2018-07-14 11:25:01 -04:00
Levi 37fd50995f added parameter for setting packer password as env variable 2018-07-14 11:25:00 -04:00
DanHam 485d565e32
Ensure comments are easily readable in a standard terminal 2018-06-15 00:49:15 +01:00
DanHam e0bcba4913
Make the upload of env vars retryable in case of restarts 2018-06-15 00:09:50 +01:00
localghost e1a1bb522d Merge remote-tracking branch 'origin/master' into ansible_local_playbook_files_update 2018-05-26 22:00:50 +02:00
localghost 263a3c6910 Include some of the refactoring reverted by previous revert commit. 2018-05-26 21:59:43 +02:00
localghost 46a1c5d945 Revert "Unify handling PlaybookFile and PlaybookFiles."
This reverts commit 81db142c8a.
2018-05-26 21:58:08 +02:00
M. Marsh 62e1323577
Merge pull request #5956 from hashicorp/dedupe_shell_local
Deduplicate the code for the shell-local post-processor and shell-local provisioner
2018-05-23 15:54:27 -07:00
localghost 6c7aa724eb Fix tests after merging with master. 2018-05-16 22:43:30 +02:00
localghost c33ca8ce64 Merge remote-tracking branch 'origin/master' into ansible_local_playbook_files_update 2018-05-16 22:14:12 +02:00
localghost 11f2b1ec24 Merge remote-tracking branch 'origin/master' into ansible_local_playbook_files_update 2018-05-16 21:54:39 +02:00
localghost 81db142c8a Unify handling PlaybookFile and PlaybookFiles. 2018-05-16 21:54:19 +02:00
M. Marsh abb70bfa80
Merge pull request #6215 from tb3088/delay-extraArgs-4462_clean
Delay evaluation of ExtraArguments and standardize puppet-server and puppet-masterless
2018-05-08 15:03:55 -07:00
Matthew Patton d22fb6d60b reformat via gofmt 2018-05-08 12:44:15 -04:00
Matthew Patton 5c7d5fac75 expose OS-specific ModulePathJoiner 2018-05-08 12:21:04 -04:00
Matthew Patton 399edbe5e7 revert false economy WRT .ExtraArguments 2018-05-08 10:12:22 -04:00
Matthew Patton b505cecd98 sync docs to code 2018-05-08 09:53:18 -04:00
Megan Marsh 51bcc7aa13 add new feature for telling shell-local whether to use linux pathing on windows; update docs with some examples. 2018-05-07 15:10:10 -07:00
Megan Marsh e983a94a88 fix default windows bash call for shell-local provisioner and move chmod command from the execute_command array into the portion of code where we actually generate inline scripts, sparing users the need to think about this modification which Packer should really handle on its own
make bash call work on windows
2018-05-07 15:10:10 -07:00
Megan Marsh 6dc4b1cbdc move all of the run commands for shell-local provisioner and postprocessor into common library too 2018-05-07 15:10:09 -07:00
Megan Marsh 926327beba deduplicate all validation and interpolation of the shell-local config, sharing options between shell-local provisioner and post-processor. Maintain backwards compatibility with shell-local provisioner. 2018-05-07 15:10:09 -07:00
Megan Marsh 616b41e58f deduplicate the nearly identical communicators for the shell-local provisioner and post-processor, moving single communicator into a new common/shell-local module 2018-05-07 15:10:09 -07:00
M. Marsh 23e51d21c2
Merge pull request #4300 from don-code/master
Allow skipping Chef Client staging directory cleanup.
2018-05-07 14:25:57 -07:00
Megan Marsh fbbcbd772b remove file stat 2018-05-03 11:08:41 -07:00
Matthew Patton 735f5273a0 tab/space fixup via gofmt 2018-05-01 17:16:47 -04:00
Matthew Patton b2d78339b0 add missing removeDir() to allow StagingDir clean-up post-run 2018-05-01 17:04:40 -04:00
Matthew Patton 514a597825 alphabetize datastructures 2018-05-01 16:38:01 -04:00
DanHam 69ac7b56f6
Remove tmp files created by provisioner/windows-shell tests 2018-04-30 20:38:03 +01:00
DanHam b738f41efa
Remove tmp files created by provisioner/powershell tests 2018-04-30 20:38:03 +01:00
DanHam 70ccb8adff
Remove tmp files created by provisioner/puppet-server tests 2018-04-30 20:38:03 +01:00
DanHam fd07cfd2b1
Remove tmp files created by provisioner/puppet-masterless tests 2018-04-30 20:38:03 +01:00
Matthew Patton b4bec692ed remove accidental duplicate, initialize WorkingDir for puppet-server 2018-04-28 01:13:23 -04:00
Matthew Patton 47d46b0c64 use filpath() to make tests portable across Windows and non-Windows 2018-04-28 00:17:27 -04:00
Matthew Patton 8bb7798ea7 standardize across both puppet-{masterless,server}
move comments outside of datastructure

remove duplicated section

fix line-endings

Golang doesn't use C-style comments

run gofmt for alignment and whitespace management

remove danling "options" and fix class reference

syncronize tests to new command structure
2018-04-27 23:47:05 -04:00
Don Luchini edb845b3f4 Allow skipping Chef Client staging directory cleanup (fixes #3151). 2018-04-27 19:35:01 -04:00
Matthew Patton 5eb497a2c5 reorder terms and define an intermediate variable
(cherry picked from commit d0251f9741cf4d7659ecb4496d103f99a0e4184a)
(cherry picked from commit dab1b903ad88af0e3e40168634c1eb227078b4eb)
2018-04-27 18:04:36 -04:00
DanHam 7cf31060eb
Remove script containing Win-Shell inline commands from local tmp when done 2018-04-26 00:32:52 +01:00
DanHam b9ab2c8048
Remove script containing PowerShell inline commands from local tmp when done 2018-04-26 00:32:52 +01:00
DanHam ccf687dac6
Fix tests 2018-04-24 11:10:35 +01:00
DanHam 5419375413
Change to CMD % style path is no longer required 2018-04-24 11:10:35 +01:00
DanHam 5b652316d9
Dollar's in env vars used in paths may cause problems for ssh
* Dollars are interpreted by *nix shells so paths using env vars such as
  ${env:SYSTEMROOT} will cause issues
2018-04-24 11:10:35 +01:00
DanHam 4e7feea184 Allow users to specify the location that the env vars file is uploaded to
Previously the location the file was uploaded to was set internally and
used ${env:SYSTEMROOT}/Temp as the destination folder.
By default, in order to inject the required environment variables, the file
is 'dot sourced' by the 'execute_command' using the {{ .Vars }} variable.
Unfortunately the inclusion of the dollar in the path caused issues for
users connecting over ssh as the (typically bash) shell running the execute
command would try and interpret the dollar sign.
The change allows users to specify the location the file is uploaded to,
thereby allowing the user to specify a custom 'execute_command' that
escapes any dollar signs that could be present in the path.
If not set the upload path now defaults to using C:/Windows/Temp as the
upload folder.
2018-04-24 11:09:55 +01:00
Megan Marsh 3afb243f11 use build name to ensure that winrm password and other shared state is not overwritten if two builders need the password in the same packer run. 2018-04-16 13:41:17 -07:00
M. Marsh 56dd8cdb63
Merge pull request #3891 from nouney/f-generated-files
Add "generated" file tag to allow users to upload files created on the fly.
2018-04-05 16:08:38 -07:00
Omer Katz c0719a3590
Allow using a custom inventory file. 2018-04-05 12:56:07 +03:00
Joshua C. Randall 406bf9c4aa override ansible executor inventory to use InventoryDirectory instead of InventoryFile when set 2018-03-26 17:24:58 +01:00
DanHam ef4817d644 Fix vertical spacing 2018-03-23 14:01:30 +00:00