2015-06-23 17:39:29 -04:00
|
|
|
---
|
2017-06-14 21:04:16 -04:00
|
|
|
description: |
|
|
|
|
Communicators are the mechanism Packer uses to upload files, execute scripts,
|
|
|
|
etc. with the machine being created.
|
2017-03-25 18:13:52 -04:00
|
|
|
layout: docs
|
2017-06-14 21:04:16 -04:00
|
|
|
page_title: 'Communicators - Templates'
|
|
|
|
sidebar_current: 'docs-templates-communicators'
|
2015-06-23 17:39:29 -04:00
|
|
|
---
|
|
|
|
|
2017-03-25 18:13:52 -04:00
|
|
|
# Template Communicators
|
2015-06-23 17:39:29 -04:00
|
|
|
|
|
|
|
Communicators are the mechanism Packer uses to upload files, execute
|
|
|
|
scripts, etc. with the machine being created.
|
|
|
|
|
|
|
|
Communicators are configured within the [builder](/docs/templates/builders.html)
|
|
|
|
section. Packer currently supports three kinds of communicators:
|
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `none` - No communicator will be used. If this is set, most provisioners
|
|
|
|
also can't be used.
|
2015-06-23 17:39:29 -04:00
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `ssh` - An SSH connection will be established to the machine. This is
|
|
|
|
usually the default.
|
2015-06-23 17:39:29 -04:00
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `winrm` - A WinRM connection will be established.
|
2015-06-23 17:39:29 -04:00
|
|
|
|
|
|
|
In addition to the above, some builders have custom communicators they can
|
|
|
|
use. For example, the Docker builder has a "docker" communicator that uses
|
|
|
|
`docker exec` and `docker cp` to execute scripts and copy files.
|
|
|
|
|
|
|
|
## Using a Communicator
|
|
|
|
|
|
|
|
By default, the SSH communicator is usually used. Additional configuration
|
2015-07-12 09:50:04 -04:00
|
|
|
may not even be necessary, since some builders such as Amazon automatically
|
2015-06-23 17:39:29 -04:00
|
|
|
configure everything.
|
|
|
|
|
|
|
|
However, to specify a communicator, you set the `communicator` key within
|
|
|
|
a build. Multiple builds can have different communicators. Example:
|
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
``` json
|
2015-06-23 17:39:29 -04:00
|
|
|
{
|
2017-03-25 18:13:52 -04:00
|
|
|
"builders": [
|
|
|
|
{
|
|
|
|
"type": "amazon-ebs",
|
|
|
|
"communicator": "ssh"
|
|
|
|
}
|
|
|
|
]
|
2015-06-23 17:39:29 -04:00
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
After specifying the `communicator`, you can specify a number of other
|
|
|
|
configuration parameters for that communicator. These are documented below.
|
|
|
|
|
|
|
|
## SSH Communicator
|
|
|
|
|
2017-11-06 15:37:41 -05:00
|
|
|
The SSH communicator connects to the host via SSH. If you have an SSH agent
|
|
|
|
configured on the host running Packer, and SSH agent authentication is enabled
|
|
|
|
in the communicator config, Packer will automatically forward the SSH agent
|
|
|
|
to the remote host.
|
2015-06-23 17:49:36 -04:00
|
|
|
|
2015-06-23 17:39:29 -04:00
|
|
|
The SSH communicator has the following options:
|
|
|
|
|
2018-04-21 20:50:40 -04:00
|
|
|
- `ssh_agent_auth` (boolean) - If `true`, the local SSH agent will be used to
|
|
|
|
authenticate connections to the remote host. Defaults to `false`.
|
2017-11-06 15:37:41 -05:00
|
|
|
|
2018-04-21 20:50:40 -04:00
|
|
|
- `ssh_bastion_agent_auth` (boolean) - If `true`, the local SSH agent will
|
|
|
|
be used to authenticate with the bastion host. Defaults to `false`.
|
2017-05-28 08:05:03 -04:00
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `ssh_bastion_host` (string) - A bastion host to use for the actual
|
2016-02-19 09:46:24 -05:00
|
|
|
SSH connection.
|
2015-06-23 17:39:29 -04:00
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `ssh_bastion_password` (string) - The password to use to authenticate
|
2016-02-19 09:46:24 -05:00
|
|
|
with the bastion host.
|
2015-06-23 17:39:29 -04:00
|
|
|
|
2018-09-05 14:29:20 -04:00
|
|
|
- `ssh_bastion_port` (number) - The port of the bastion host. Defaults to `22`.
|
2016-02-19 09:46:24 -05:00
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `ssh_bastion_private_key_file` (string) - A private key file to use
|
2016-02-19 09:46:24 -05:00
|
|
|
to authenticate with the bastion host.
|
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `ssh_bastion_username` (string) - The username to connect to the bastion
|
2016-02-19 09:46:24 -05:00
|
|
|
host.
|
|
|
|
|
2017-06-19 10:21:33 -04:00
|
|
|
- `ssh_disable_agent_forwarding` (boolean) - If true, SSH agent forwarding
|
2018-04-21 20:50:40 -04:00
|
|
|
will be disabled. Defaults to `false`.
|
2016-02-19 09:46:24 -05:00
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `ssh_file_transfer_method` (`scp` or `sftp`) - How to transfer files, Secure
|
2016-02-19 09:46:24 -05:00
|
|
|
copy (default) or SSH File Transfer Protocol.
|
|
|
|
|
2017-10-16 14:23:33 -04:00
|
|
|
- `ssh_handshake_attempts` (number) - The number of handshakes to attempt
|
2018-04-21 20:50:40 -04:00
|
|
|
with SSH once it can connect. This defaults to `10`.
|
2016-02-19 09:46:24 -05:00
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `ssh_host` (string) - The address to SSH to. This usually is automatically
|
2016-02-19 09:46:24 -05:00
|
|
|
configured by the builder.
|
2015-06-23 17:39:29 -04:00
|
|
|
|
2018-01-31 01:00:37 -05:00
|
|
|
* `ssh_keep_alive_interval` (string) - How often to send "keep alive"
|
2018-04-21 20:50:40 -04:00
|
|
|
messages to the server. Set to a negative value (`-1s`) to disable. Example
|
|
|
|
value: `10s`. Defaults to `5s`.
|
2018-01-31 01:00:37 -05:00
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `ssh_password` (string) - A plaintext password to use to authenticate
|
2015-06-23 17:39:29 -04:00
|
|
|
with SSH.
|
|
|
|
|
2018-04-21 20:50:40 -04:00
|
|
|
- `ssh_port` (number) - The port to connect to SSH. This defaults to `22`.
|
2016-02-19 09:46:24 -05:00
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `ssh_private_key_file` (string) - Path to a PEM encoded private key
|
2017-10-04 17:25:31 -04:00
|
|
|
file to use to authenticate with SSH.
|
2015-06-23 17:39:29 -04:00
|
|
|
|
2018-04-21 20:50:40 -04:00
|
|
|
- `ssh_proxy_host` (string) - A SOCKS proxy host to use for SSH connection
|
|
|
|
|
|
|
|
- `ssh_proxy_password` (string) - The password to use to authenticate with
|
|
|
|
the proxy server. Optional.
|
|
|
|
|
|
|
|
- `ssh_proxy_port` (number) - A port of the SOCKS proxy. Defaults to `1080`.
|
|
|
|
|
|
|
|
- `ssh_proxy_username` (string) - The username to authenticate with the proxy
|
|
|
|
server. Optional.
|
|
|
|
|
|
|
|
- `ssh_pty` (boolean) - If `true`, a PTY will be requested for the SSH
|
|
|
|
connection. This defaults to `false`.
|
2015-06-23 17:39:29 -04:00
|
|
|
|
2018-01-31 02:09:12 -05:00
|
|
|
* `ssh_read_write_timeout` (string) - The amount of time to wait for a remote
|
2018-01-31 14:48:03 -05:00
|
|
|
command to end. This might be useful if, for example, packer hangs on
|
2018-04-21 20:50:40 -04:00
|
|
|
a connection after a reboot. Example: `5m`. Disabled by default.
|
2018-01-31 02:09:12 -05:00
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `ssh_timeout` (string) - The time to wait for SSH to become available.
|
2015-07-19 10:56:00 -04:00
|
|
|
Packer uses this to determine when the machine has booted so this is
|
2018-04-21 20:50:40 -04:00
|
|
|
usually quite long. Example value: `10m`.
|
2015-06-23 17:39:29 -04:00
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `ssh_username` (string) - The username to connect to SSH with. Required
|
2016-11-15 16:06:15 -05:00
|
|
|
if using SSH.
|
2015-06-23 17:39:29 -04:00
|
|
|
|
|
|
|
## WinRM Communicator
|
|
|
|
|
|
|
|
The WinRM communicator has the following options.
|
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `winrm_host` (string) - The address for WinRM to connect to.
|
2015-06-23 17:39:29 -04:00
|
|
|
|
2018-04-21 20:50:40 -04:00
|
|
|
- `winrm_insecure` (boolean) - If `true`, do not check server certificate
|
|
|
|
chain and host name.
|
2015-06-23 17:39:29 -04:00
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `winrm_password` (string) - The password to use to connect to WinRM.
|
2015-06-23 17:39:29 -04:00
|
|
|
|
2018-04-21 20:50:40 -04:00
|
|
|
- `winrm_port` (number) - The WinRM port to connect to. This defaults to
|
|
|
|
`5985` for plain unencrypted connection and `5986` for SSL when
|
|
|
|
`winrm_use_ssl` is set to true.
|
|
|
|
|
2017-06-14 21:04:16 -04:00
|
|
|
- `winrm_timeout` (string) - The amount of time to wait for WinRM to
|
2018-04-21 20:50:40 -04:00
|
|
|
become available. This defaults to `30m` since setting up a Windows
|
2015-06-23 17:39:29 -04:00
|
|
|
machine generally takes a long time.
|
2016-01-12 21:28:20 -05:00
|
|
|
|
2018-04-21 20:50:40 -04:00
|
|
|
- `winrm_use_ntlm` (boolean) - If `true`, NTLM authentication will be used for WinRM,
|
2017-06-14 21:04:16 -04:00
|
|
|
rather than default (basic authentication), removing the requirement for basic
|
|
|
|
authentication to be enabled within the target guest. Further reading for remote
|
|
|
|
connection authentication can be found [here](https://msdn.microsoft.com/en-us/library/aa384295(v=vs.85).aspx).
|
2018-04-21 20:50:40 -04:00
|
|
|
|
|
|
|
- `winrm_use_ssl` (boolean) - If `true`, use HTTPS for WinRM.
|
|
|
|
|
|
|
|
- `winrm_username` (string) - The username to use to connect to WinRM.
|