Commit Graph

134 Commits

Author SHA1 Message Date
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 81522dced0
move packer to hashicorp 2017-04-04 13:39:01 -07:00
Matthew Hooker 0149f679de
Print instead of Printf with no dynamic first variable. 2017-03-28 20:36:20 -07:00
DanHam e350739ecb
post-processor/shell-local: expand tests to align with shell provisioner 2017-01-23 22:25:39 +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
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 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 12176b6afc
provisioner/shell: treat disconnects as retryable. 2016-11-22 15:59:40 -08: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 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
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
Chris Bednarski 1f6749096a Restore missing interpolation after merging ansible remote; fixes #3138 2016-02-01 13:28:49 -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
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
Billie H. Cleek cc8ca3098e add ansible provisioner 2015-10-31 10:39:33 -07:00
Mitchell Hashimoto 7c8e86c9c5 provisioner/*: fix interpolation context 2015-06-22 12:26:54 -07:00
Mitchell Hashimoto 6ec428cc38 provisioner/shell: retry file delete [GH-2286] 2015-06-21 19:53:43 -07:00
Mitchell Hashimoto 4463083a60 provisioner/shell: randomize default script name 2015-06-18 10:38:23 +02:00
Mitchell Hashimoto 6c80228661 provisioner/shell: missing error arg 2015-06-15 15:11:08 -07:00
Mitchell Hashimoto a235419c7d provisioner/shell: remove file after exec [GH-1536] 2015-06-15 15:02:59 -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 3eda0f33a0 provisioner/shell: quote PACKER env vars [GH-1565] 2014-10-28 08:23:18 -07:00
Josh Frye 5835ca42b4 Move quoting to else block only for valid vars. Add test case. 2014-10-14 14:20:36 -07:00
Josh Frye a667282e00 Single quote env var values. 2014-10-14 13:03:14 -07:00
Ross Smith II d92179847d provisioner/file: set file/directory permissions
fixes #1064
2014-05-09 21:03:35 -07:00
Mitchell Hashimoto 9365b879c0 provisioner/shell: chmod uploaded file to 0777 [GH-994] 2014-04-26 20:20:47 -07:00
Mitchell Hashimoto ec41edf558 provisioner/shell: Split on first equal for env vars [GH-1045] 2014-04-26 14:51:56 -07:00
Mitchell Hashimoto 528ae09c37 provisioner/shell: comment on why we return right away if advance == 0
/cc @mwhooker
2013-10-15 09:48:12 -10:00
Mitchell Hashimoto f673ca52ba provisoiner/shell: append only needs to add a byte for UnixReader 2013-10-15 09:40:47 -10:00
Matthew Hooker 104f5049a7 provisioner/shell: fix EOF detection
Fixes #507

The scanUnixLine function was erroneously returning empty lines when EOF
was reached.
This commit adds a test for the problem and changes the scanUnixLine
function to elide the trailing \n if no content was read.
2013-10-15 05:56:10 -07:00
Mitchell Hashimoto ff970483c4 provisioner/shell: add more tests for UnixReader 2013-10-04 10:47:28 -07:00
Matthew Hooker 0d1b936f69 Fix UnixReader panic on empty lines.
Added a test for the failure.

Most of the scanner code looks like it's a modified version of
bufio.ScanLines, so I changed it to use that but always add a line feed.
2013-10-01 09:06:01 +00:00
Jason A. Beranek b3d76b7945 provisioner/shell: fix provisioner to use UnixReader [GH-477]
Packer was using the original file reader when uploading, instead of the UnixReader /cc @mitchellh
2013-09-30 23:54:54 -05:00
Mitchell Hashimoto 89d165aae7 provisioner/shell: add another UnixReader test for sanity 2013-09-30 11:39:24 -07:00
Mitchell Hashimoto abbac36796 provisioner/shell: convert windows line endings to Unix [GH-277] 2013-09-20 10:22:43 -07:00
Mitchell Hashimoto 28bf6122bd provisioner/*: implement Cancel 2013-08-30 23:23:36 -07:00
Mitchell Hashimoto a46c7afcf7 provisioner/shell: retry the upload if command fails as well
This improves reboot handling robustness
2013-08-23 11:21:20 -07:00
Mitchell Hashimoto 717746ce4f provisioner/shell: retry uploads if reboot [GH-282] 2013-08-19 23:02:06 -07:00
Mitchell Hashimoto 64d87bfaf3 *: switch to packer ConfigTemplate 2013-08-15 19:17:23 -07:00
Mitchell Hashimoto 21f92715c0 provisioner/shell: start_retry_timeout for reboot handling [GH-260] 2013-08-12 15:49:55 -07:00
Mitchell Hashimoto 332bdf6edc builder/*, provisioner/*: set user vars 2013-08-09 15:57:08 -07:00
Mitchell Hashimoto 3f1af409e2 provisioner/shell: tests passing and compiling 2013-08-08 17:25:26 -07:00
Mitchell Hashimoto f4b0e2248f provisioner/shell: convert to latest template stuff 2013-08-08 17:25:26 -07:00
Rafael Garcia 25af1c8bd4 provisioner/shell: state of the art config decoding 2013-08-06 15:30:36 -07:00
Mitchell Hashimoto b64a2532f4 provisioner/shell: use StartWithUi 2013-07-23 22:44:32 -05:00
Mitchell Hashimoto 0b5f4d9d17 provisioner/shell: make build name and builder type env vars [GH-154] 2013-07-15 10:07:49 +09:00
Mitchell Hashimoto 3b4ef72e47 Unused keys are invalid in templates [GH-104] 2013-07-14 09:28:56 +09:00
Mitchell Hashimoto 1745d4e831 provisioner/shell: close source script file handle 2013-07-07 20:50:53 -07:00
Mitchell Hashimoto b22743767e provisioner/shell: inline_shebang for inline scripts 2013-07-07 17:52:20 -07:00
Geoffrey Bachelet 43db2c23eb provisioner/shell: execute script directly instead of using /bin/sh 2013-07-03 20:17:31 -04:00
Mitchell Hashimoto 919c3935e1 Merge branch 'shell-env-vars'
Conflicts:
	website/source/docs/provisioners/shell.html.markdown
2013-06-28 08:20:12 -04:00
Jack Pearkes d64797cc44 provisioner/shell: remove check for empty env vars config 2013-06-28 14:11:27 +02:00
Mitchell Hashimoto 17d0f5f71b provisioner/shell: rename "path" to "script" 2013-06-27 10:56:46 -07:00
Jack Pearkes e9d8e9f537 provisioner/shell: add support for environment variables to be injected 2013-06-27 14:42:14 +02:00
Mitchell Hashimoto 8cb2fd761e provisioner/shell: Error if a script fails 2013-06-26 17:52:49 -07:00
Mitchell Hashimoto e8cbb9f9b6 provisioner/shell: Error message if provisioning fails 2013-06-23 17:37:44 -07:00
Mitchell Hashimoto 9367df4a3f provisioner/shell: copy the scripts [GH-29] 2013-06-23 11:56:49 -07:00
Mitchell Hashimoto 7797676091 provisioner/shell: can specify multiple scripts to provision with 2013-06-20 13:45:54 -07:00
Mitchell Hashimoto 417f7e7f47 fmt 2013-06-11 14:09:31 -07:00
Mitchell Hashimoto 59b5902619 provisioner/shell: Support inline commands 2013-06-11 13:52:32 -07:00
Mitchell Hashimoto 690954cb51 provisioner/shell: validation 2013-06-11 13:42:15 -07:00
Mitchell Hashimoto 4a8278d49b provisioner/shell: Support setting the execute command 2013-06-06 23:14:31 -07:00
Mitchell Hashimoto e9b552ba18 provisioner/shell: Remove TODO since we handled it 2013-06-06 22:39:52 -07:00
Mitchell Hashimoto 0a6d8ed75a packer: Add errors to Prepare 2013-06-06 17:07:42 -07:00
Mitchell Hashimoto 6b87c42ee6 packer: Change provisioner interface to take array of configs 2013-06-06 17:01:12 -07:00
Mitchell Hashimoto c5d539ef13 command/build: Better prefixes 2013-06-03 11:40:08 -07:00
Mitchell Hashimoto 37937c1290 provisioner/shell: Use RemoteCmd.Wait 2013-06-03 10:56:12 -07:00
Mitchell Hashimoto fdda64f48e provisioner/shell: Trim whitespace on output 2013-06-02 23:39:04 -07:00
Mitchell Hashimoto 684df67ca6 provisioner/shell: Adhere to new communicator API 2013-06-02 23:34:55 -07:00
Mitchell Hashimoto ffcb7afbee provisioner/shell: Properly handle closed channels in select 2013-06-02 19:03:26 -07:00
Mitchell Hashimoto cf732a913d provisioner/shell: stream output in real time 2013-06-01 21:59:33 -07:00
Mitchell Hashimoto ace53450b9 packer: More efficient RemoteCommand.ExitChan 2013-06-01 17:57:26 -07:00
Mitchell Hashimoto 9ebf0435ff provisioner/shell: Basic run 2013-05-27 21:54:19 -07:00
Mitchell Hashimoto f726ea2800 provisioner/shell: Start working on shell provisioner 2013-05-27 15:06:34 -07:00
Mitchell Hashimoto 46a058572b provisioner/shell and plugin/provisioner-shell 2013-05-23 22:38:40 -07:00