website: windows-shell
This commit is contained in:
parent
339a4ccdab
commit
e1530c39dc
|
@ -13,6 +13,10 @@ The shell Packer provisioner provisions machines built by Packer using shell scr
|
||||||
Shell provisioning is the easiest way to get software installed and configured
|
Shell provisioning is the easiest way to get software installed and configured
|
||||||
on a machine.
|
on a machine.
|
||||||
|
|
||||||
|
-> **Building Windows images?** You probably want to use the
|
||||||
|
[PowerShell](/docs/provisioners/powershell.html) or
|
||||||
|
[Windows Shell](/docs/provisioners/windows-shell.html) provisioners.
|
||||||
|
|
||||||
## Basic Example
|
## Basic Example
|
||||||
|
|
||||||
The example below is fully functional.
|
The example below is fully functional.
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
---
|
||||||
|
layout: "docs"
|
||||||
|
page_title: "Windows Shell Provisioner"
|
||||||
|
description: |-
|
||||||
|
The windows-shell Packer provisioner runs commands on Windows using the cmd shell.
|
||||||
|
---
|
||||||
|
|
||||||
|
# Windows Shell Provisioner
|
||||||
|
|
||||||
|
Type: `windows-shell`
|
||||||
|
|
||||||
|
The windows-shell Packer provisioner runs commands on a Windows machine
|
||||||
|
using `cmd`. It assumes it is running over WinRM.
|
||||||
|
|
||||||
|
## Basic Example
|
||||||
|
|
||||||
|
The example below is fully functional.
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
{
|
||||||
|
"type": "windows-shell",
|
||||||
|
"inline": ["dir c:\\"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration Reference
|
||||||
|
|
||||||
|
The reference of available configuration options is listed below. The only
|
||||||
|
required element is either "inline" or "script". Every other option is optional.
|
||||||
|
|
||||||
|
Exactly _one_ of the following is required:
|
||||||
|
|
||||||
|
* `inline` (array of strings) - This is an array of commands to execute.
|
||||||
|
The commands are concatenated by newlines and turned into a single file,
|
||||||
|
so they are all executed within the same context. This allows you to
|
||||||
|
change directories in one command and use something in the directory in
|
||||||
|
the next and so on. Inline scripts are the easiest way to pull off simple
|
||||||
|
tasks within the machine.
|
||||||
|
|
||||||
|
* `script` (string) - The path to a script to upload and execute in the machine.
|
||||||
|
This path can be absolute or relative. If it is relative, it is relative
|
||||||
|
to the working directory when Packer is executed.
|
||||||
|
|
||||||
|
* `scripts` (array of strings) - An array of scripts to execute. The scripts
|
||||||
|
will be uploaded and executed in the order specified. Each script is executed
|
||||||
|
in isolation, so state such as variables from one script won't carry on to
|
||||||
|
the next.
|
||||||
|
|
||||||
|
Optional parameters:
|
||||||
|
|
||||||
|
* `binary` (boolean) - If true, specifies that the script(s) are binary
|
||||||
|
files, and Packer should therefore not convert Windows line endings to
|
||||||
|
Unix line endings (if there are any). By default this is false.
|
||||||
|
|
||||||
|
* `environment_vars` (array of strings) - An array of key/value pairs
|
||||||
|
to inject prior to the execute_command. The format should be
|
||||||
|
`key=value`. Packer injects some environmental variables by default
|
||||||
|
into the environment, as well, which are covered in the section below.
|
||||||
|
|
||||||
|
* `execute_command` (string) - The command to use to execute the script.
|
||||||
|
By default this is `{{ .Vars }}"{{ .Path }}"`. The value of this is
|
||||||
|
treated as [configuration template](/docs/templates/configuration-templates.html).
|
||||||
|
There are two available variables: `Path`, which is
|
||||||
|
the path to the script to run, and `Vars`, which is the list of
|
||||||
|
`environment_vars`, if configured.
|
||||||
|
|
||||||
|
* `remote_path` (string) - The path where the script will be uploaded to
|
||||||
|
in the machine. This defaults to "/tmp/script.sh". This value must be
|
||||||
|
a writable location and any parent directories must already exist.
|
||||||
|
|
||||||
|
* `start_retry_timeout` (string) - The amount of time to attempt to
|
||||||
|
_start_ the remote process. By default this is "5m" or 5 minutes. This
|
||||||
|
setting exists in order to deal with times when SSH may restart, such as
|
||||||
|
a system reboot. Set this to a higher value if reboots take a longer
|
||||||
|
amount of time.
|
|
@ -50,6 +50,7 @@
|
||||||
<li><a href="/docs/provisioners/shell.html">Shell Scripts</a></li>
|
<li><a href="/docs/provisioners/shell.html">Shell Scripts</a></li>
|
||||||
<li><a href="/docs/provisioners/file.html">File Uploads</a></li>
|
<li><a href="/docs/provisioners/file.html">File Uploads</a></li>
|
||||||
<li><a href="/docs/provisioners/powershell.html">PowerShell</a></li>
|
<li><a href="/docs/provisioners/powershell.html">PowerShell</a></li>
|
||||||
|
<li><a href="/docs/provisioners/windows-shell.html">Windows Shell</a></li>
|
||||||
<li><a href="/docs/provisioners/ansible-local.html">Ansible</a></li>
|
<li><a href="/docs/provisioners/ansible-local.html">Ansible</a></li>
|
||||||
<li><a href="/docs/provisioners/chef-client.html">Chef Client</a></li>
|
<li><a href="/docs/provisioners/chef-client.html">Chef Client</a></li>
|
||||||
<li><a href="/docs/provisioners/chef-solo.html">Chef Solo</a></li>
|
<li><a href="/docs/provisioners/chef-solo.html">Chef Solo</a></li>
|
||||||
|
|
Loading…
Reference in New Issue