Ansible¶
LXDock provides built-in support for Ansible provisioning.
Usage¶
Just append an ansible provisioning operation to your LXDock file as follows:
name: myproject
image: ubuntu/xenial
provisioning:
- type: ansible
playbook: deploy/site.yml
Required options¶
playbook¶
The playbook option allows you to define the path to your Ansible playbook you want to run when
your containers are provisioned.
Optional options¶
ask_vault_pass¶
You can use this option to force the use of the --ask-vault-pass flag when the
ansible-playbook command is executed during the provisioning workflow. Here is an example:
[...]
provisioning:
- type: ansible
playbook: deploy/site.yml
ask_vault_pass: yes
vault_password_file¶
You can use this option to specify the path toward the vault password file you want to use when the
ansible-playbook command is executed. Here is an example:
[...]
provisioning:
- type: ansible
playbook: deploy/site.yml
vault_password_file: secrets/vaultpass
groups¶
Use this option to add groups to the inventory that is dynamically generated by the provisioner. This option is a hash of lists of container names. Example:
[...]
provisioning:
- type: ansible
playbook: deploy/site.yml
groups:
group1:
- container1
- container2
group2:
- container2
lxd_transport¶
If this boolean option is set to true, we will use ansible’s lxd transport instead of the
ssh one, thus bypassing ssh entirely and using lxc exec directly.
It should be noted that while very cool-sounding, this transport method comes with a couple of
drawbacks due to its incomplete support in Ansible. For example, synchronize actions don’t
work.