add some docs for how to do complex custom commands
This commit is contained in:
parent
afe760e635
commit
c317679f52
|
@ -70,7 +70,9 @@ Optional Parameters:
|
|||
```
|
||||
|
||||
- `command` (string) - The command to invoke ansible. Defaults to
|
||||
`ansible-playbook`.
|
||||
`ansible-playbook`. If you would like to provide a more complex command,
|
||||
for example, something that sets up a virtual environment before calling
|
||||
ansible, take a look at the ansible wrapper guide below for inspiration.
|
||||
|
||||
- `empty_groups` (array of strings) - The groups which should be present in
|
||||
inventory file but remain empty.
|
||||
|
@ -354,3 +356,32 @@ $ ssh-add -D
|
|||
|
||||
We recommend against running Packer as root; if you do then you won't be able
|
||||
to successfully run your ansible playbook as root; `become: yes` will fail.
|
||||
|
||||
### Using a wrapping script for your ansible call
|
||||
|
||||
Sometimes, you may have extra setup that needs to be called as part of your
|
||||
ansible run. The easiest way to do this is by writing a small bash script and
|
||||
using that bash script in your "command" in place of the default
|
||||
"ansible-playbook". For example, you may need to launch a Python virtualenv
|
||||
before calling ansible. To do this, you'd want to create a bash script like
|
||||
|
||||
``` sh
|
||||
#!/bin/bash
|
||||
source /tmp/venv/bin/activate && ANSIBLE_FORCE_COLOR=1 PYTHONUNBUFFERED=1 /tmp/venv/bin/ansible-playbook "$@"
|
||||
```
|
||||
|
||||
The ansible provisioner template remains very simple. For example:
|
||||
|
||||
``` json
|
||||
{
|
||||
"type": "ansible",
|
||||
"command": "/Path/To/call_ansible.sh",
|
||||
"playbook_file": "./playbook.yml"
|
||||
}
|
||||
```
|
||||
|
||||
Note that we're calling ansible-playbook at the end of this command and passing
|
||||
all command line arguments through into this call; this is necessary for
|
||||
making sure that --extra-vars and other important ansible arguments get set.
|
||||
Note the quoting around the bash array, too; if you don't use quotes, any
|
||||
arguments with spaces will not be read properly.
|
||||
|
|
Loading…
Reference in New Issue