Puppet¶
LXDock provides built-in support for Puppet provisioning.
Distribution Support¶
Puppet provisioning requires the executable puppet in the guest container. For ArchLinux,
Debian, Fedora and Ubuntu guests, LXDock tries to install the puppet package during
lxdock up.
However, the automatic installation may fail, it may install an old version of Puppet, or you
may also use another Linux distribution. In these cases, you may see an error message at
the beginning of lxdock provision or during the provisioning (due to version mismatch).
You will have to check out the proper documentation for your Linux distribution and Puppet version,
and add a shell provisioner in LXDock file before the Puppet provisioner. Here is an example for
CentOS 7:
name: centos-7
image: centos/7
provisioning:
- type: shell
inline: sh -c 'rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-el-7.noarch.rpm && yum -y install puppet'
- type: puppet
[...] # Puppet options
By default, LXDock runs which puppet to find the executable. You may override this behavior
by providing binary_path option and LXDock will then find puppet executable under that path.
Usage¶
Add a puppet provisioning operation to your LXDock file as follows:
name: myproject
image: ubuntu/xenial
provisioning:
- type: puppet
manifests_path: manifests
manifest_file: site.pp
module_path: modules
hiera_config_path: hiera.yaml
facter:
role: app
domain_name: app.example.com
options: "--verbose --debug"
Puppet provisioning can be run in “manifest” mode or “environment” mode by setting manifests_path
or environment_path, respectively. If manifest_file is not provided in “manifest” mode, it is
given the default value default.pp. If environment is not provided in “environment” mode, it
is given production as the default value.
If none of manifests_path and environment_path are given, LXDock assumes “manifest” mode and
set manifests_path to manifests. During the validation of an LXDock file, the existence of
manifests_path/manifest_file or environment_path/environment is checked.
Options¶
LXDock’s Puppet provisioning is expected to reuse the files and configurations for a Vagrant project. This is still experimental, so if it doesn’t work for your case, please feel free to create a GitHub issue!
Here are the options that LXDock has supported:
binary_pathfacterhiera_config_pathmanifest_filemanifests_pathmodule_pathenvironmentenvironment_pathenvironment_variablesoptions: LXDock takes a single string of space-separated options, instead of an array of strings.
Please reference: Vagrant docs