Commit Graph

177 Commits

Author SHA1 Message Date
Stephen Fox 9592211bcf Honor value of 'Comment' field in 'ssh.KeyPairFromPrivateKey()'.
The 'ssh.KeyPairFromPrivateKey()' function in the 'ssh' helper
library was not honoring the value of the 'Comment' field in the
'FromPrivateKeyConfig' struct. This commit fixes the issue, and
updates unit tests to catch the issue if it happens again.
2019-07-27 15:52:13 -04:00
Vladislav Rassokhin 19e8f150a3 Use context for timeouts, interruption in ssh and winrm communicators
Also don't waste 5 seconds waiting before first winrm connection attempt
Minor code cleanup as well
2019-07-12 13:04:00 +03:00
Megan Marsh ba66d5d857
Merge pull request #7831 from hashicorp/fix_ssh_interface
Revert "move SSHInterface/SSHIPVersion fields to communitator.Config …
2019-07-03 16:23:00 -07:00
Megan Marsh 242f5b1c9f typos 2019-07-03 13:34:23 -07:00
Megan Marsh 8718e98efe add common commHost function 2019-07-03 13:30:50 -07:00
Megan Marsh 6ad975f296 Revert "move SSHInterface/SSHIPVersion fields to communitator.Config struct"
This reverts commit b0c09087a2.
2019-07-02 10:46:10 -07:00
Adrien Delorme d16fd8a2b1 allow to build on solaris 2019-06-07 12:42:38 +02:00
Megan Marsh df916e805e borrow wrappedreadline workarounds from terraform and implement a similar check for piped commands; this makes the cli experience much cleaner 2019-06-06 13:26:07 -07:00
Adrien Delorme e96409954a add execution policy type and use it to default the powershell cmd 2019-05-23 16:12:05 +02:00
Adrien Delorme f555e7a9f2 allow a provisioner to timeout
* I had to contextualise Communicator.Start and RemoteCmd.StartWithUi
NOTE: Communicator.Start starts a RemoteCmd but RemoteCmd.StartWithUi will run the cmd and wait for a return, so I renamed StartWithUi to RunWithUi so that the intent is clearer.
Ideally in the future RunWithUi will be named back to StartWithUi and the exit status or wait funcs of the command will allow to wait for a return. If you do so please read carrefully https://golang.org/pkg/os/exec/#Cmd.Stdout to avoid a deadlock
* cmd.ExitStatus to cmd.ExitStatus() is now blocking to avoid race conditions
* also had to simplify StartWithUi
2019-04-08 20:09:21 +02:00
Adrien Delorme a81abd297b Merge remote-tracking branch 'origin/master' into context_provisioner 2019-04-08 20:09:01 +02:00
Adrien Delorme c4f3dccc14 rename interpolation context from ctx to ictx and contexts to ctx to avoid conflicts 2019-04-03 15:56:15 +02:00
Adrien Delorme 82c4b76639 [Builder|Build|PostProcessor|Provisioner|Hook]Server: context cancel using a RPC cancel method 2019-04-03 15:55:55 +02:00
Adrien Delorme cccbd7f316 contextualize basic runner 2019-04-03 15:55:55 +02:00
Adrien Delorme a4bf94dd3c change Builder to be passed a context for cancellation
we have to to give it to our hook
2019-04-03 15:55:55 +02:00
Megan Marsh 8f3313d81e Create new docker communicator for windows containers 2019-03-27 15:25:32 -07:00
Adrien Delorme 7737458d17 fix log output 2019-03-19 15:32:43 +01:00
Adrien Delorme 5a6dffde9a use port as ints 2019-03-19 15:01:12 +01:00
Adrien Delorme 025fc87278 StepConnectSSH: show connection address in debug output 2019-03-19 12:54:15 +01:00
Adrien Delorme c214f6735b make everything a uint 2019-03-19 12:54:15 +01:00
Adrien Delorme 9f82b75e57 Use the hashicorp/go-getter to download files
* removed packer.Cache and references since packer.Cache is never used except in the download step. The download step now uses the new func packer.CachePath(targetPath) for this, the behavior is the same.
* removed download code from packer that was reimplemented into the go-getter library: progress bar, http download restart, checksuming from file, skip already downloaded files, symlinking, make a download cancellable by context.
* on windows if packer is running without symlinking rights and we are getting a local file, the file will be copied instead to avoid errors.
* added unit tests for step_download that are now CI tested on windows, mac & linux.
* files are now downloaded under cache dir `sha1(filename + "?checksum=" + checksum) + file_extension`
* since the output dir is based on the source url and the checksum, when the checksum fails, the file is auto deleted.
* a download file is protected and locked by a file lock,
* updated docs
* updated go modules and vendors
2019-03-13 12:11:58 +01:00
Megan Marsh 3dc1dafe58
Merge pull request #7287 from stephen-fox/ephemeral-ssh-key-pair-issue-7225
virtualbox: create ephemeral SSH key pair for build process
2019-03-04 14:25:04 -08:00
Stephen Fox d51e300fcd Clarified comment for 'defaultRsaBits' constant.
That *is* a lot of bits.
2019-03-01 12:17:13 -05:00
Stephen Fox 7e1cbc6d89 Rename references to key pair name to comment.
Per the OpenSSH manual, the field is for a comment.
2019-03-01 10:00:29 -05:00
Stephen Fox 094c87e395 Remove 'SSHPublicKeyUrlEncoded', use 'urlquery' instead.
Per code review feedback, the Go template library supports
encoding variables in URL query format. Instead of exposing
two different public key formats (unmodified string and a
URL encoded string), just have the user apply the 'urlquery'
modifier to their template.
2019-02-28 17:06:51 -05:00
Stephen Fox 856810e82e Coalesce private key type switch cases per review feedback. 2019-02-28 09:56:11 -05:00
Stephen Fox 672b22bd13 Move 'CreateKeyPairConfig' closer to callers.
Per review feedback.
2019-02-28 09:44:25 -05:00
Stephen Fox 302828905d Move 'FromPrivateKeyConfig' closer to caller.
Per review feedback.
2019-02-28 09:42:20 -05:00
Stephen Fox ed06656613 Update 'authorizedKeysLine' doc per review feedback. 2019-02-28 09:40:00 -05:00
Stephen Fox 415ef26768 Removed TODO about key pair description per review feedback. 2019-02-28 09:30:30 -05:00
Megan Marsh 9db844a807 move pause to after connection can be established. 2019-02-26 12:24:45 -08:00
Stephen Fox 2ef6b9247d Initial take on code review feedback from @azr.
Do not use builder pattern or interfaces; stick to structs and
some basic functions.
2019-02-25 17:16:24 -05:00
Megan Marsh 31c8acc5bc add a configurable pause before step_connect to work around bootstrap race conditions 2019-02-15 15:05:29 -08:00
Stephen Fox 2ab2ea6ef1 Fixed interface documentation typo. 2019-02-12 10:29:43 -05:00
Stephen Fox ed1d224b97 Remove defaultKeyPair type. Be more specific in errors. 2019-02-07 11:09:53 -05:00
chris marget 97268b3041 . 2019-02-06 15:05:56 -05:00
chris marget 3515afa994 better variable names in test function 2019-02-06 14:39:39 -05:00
chris marget 75bd3c6951 constants don't need to be [P]ublic 2019-02-06 14:36:38 -05:00
chris marget b476e54db1 whitespace 2019-02-06 14:34:09 -05:00
chris marget be01ca70f4 on error return empty defaultKeyPair{} rather than nil 2019-02-06 14:02:26 -05:00
chris marget 484aa4768f Remove unused keyheader data type 2019-02-06 13:58:26 -05:00
chris marget 13cc73d600 keypair parsing and testing 2019-02-06 13:46:55 -05:00
Stephen Fox 72b7d63a6a Restructured the SSH key pair's description.
Now include the key pair name (if any), and make it more "readable".
2019-02-05 13:37:09 -05:00
Stephen Fox 4b649f7ce4 Use individual key pair implementations.
This allows us to store more information about the key pair.
In particular, we can query the private key for its bits of
entropy - avoiding the possibility of hardcoding the wrong value.
2019-02-05 11:53:12 -05:00
Stephen Fox d7510ecdf7 Tweaked 'PublicKeyAuthorizedKeysLine()' comment. 2019-02-05 09:54:38 -05:00
Stephen Fox 58c692a587 Get bits from private key rather than user input. 2019-02-05 09:52:46 -05:00
Stephen Fox f3128143fa Simplified building of authorized_keys public key. 2019-02-04 14:27:59 -05:00
Stephen Fox f2c11b55be Renamed authorized_keys public key function. 2019-02-04 14:27:14 -05:00
Stephen Fox d465231e63 Fixed bad curve ecdsa curve bug. 2019-02-04 14:25:37 -05:00
Stephen Fox 9328c9f9e0 Renamed "new*" SSH key pair methods. 2019-02-04 14:12:18 -05:00