diff --git a/website/source/docs/provisioners/shell.html.markdown b/website/source/docs/provisioners/shell.html.markdown index 89a442a83..75bf5e7d1 100644 --- a/website/source/docs/provisioners/shell.html.markdown +++ b/website/source/docs/provisioners/shell.html.markdown @@ -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 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 The example below is fully functional. diff --git a/website/source/docs/provisioners/windows-shell.html.md b/website/source/docs/provisioners/windows-shell.html.md new file mode 100644 index 000000000..c758a5ebd --- /dev/null +++ b/website/source/docs/provisioners/windows-shell.html.md @@ -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. diff --git a/website/source/layouts/docs.erb b/website/source/layouts/docs.erb index 8b524b087..8099b461a 100644 --- a/website/source/layouts/docs.erb +++ b/website/source/layouts/docs.erb @@ -50,6 +50,7 @@
  • Shell Scripts
  • File Uploads
  • PowerShell
  • +
  • Windows Shell
  • Ansible
  • Chef Client
  • Chef Solo