mirror of
https://github.com/kevingruesser/bootstrap-vz.git
synced 2025-08-22 18:00:35 +00:00

* updated module to allow for puppetlabs PC1 release install in Debian Stretch. Tox is green.
108 lines
4.4 KiB
ReStructuredText
108 lines
4.4 KiB
ReStructuredText
Puppet
|
|
------
|
|
|
|
Installs `puppet version 4 <http://puppetlabs.com/>` PC1 From the site
|
|
repository `<http://apt.puppetlabs.com/>` and optionally applies a
|
|
manifest inside the chroot. You can also have it copy your puppet
|
|
configuration into the image so it is readily available once the image
|
|
is booted.
|
|
|
|
Rationale and use case in a masterless setup
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
You want to use this plugin when you wish to create an image and to be able to
|
|
manage that image with Puppet. You have a Puppet 4 setup in mind and thus you
|
|
want the image to contain the puppet agent software from the puppetlabs repo.
|
|
You want it to almost contain everything you need to get it up and running
|
|
This plugin does just that!
|
|
While you're at it, throw in some modules from the forge as well!
|
|
Want to include your own modules? Include them as assets!
|
|
|
|
This is primarily useful when you have a very limited collection of nodes you
|
|
wish to manage with puppet without to having to set up an entire puppet infra-
|
|
structure. This allows you thus to work "masterless".
|
|
|
|
You can use this to bootstrap any kind of appliance, like a puppet master!
|
|
|
|
For now this plugin is only compatible with Debian versions Wheezy, Jessie and
|
|
Stretch. These are Debian distributions supported by puppetlabs.
|
|
|
|
About Master/agent setups
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
If you wish to use this plugin in an infrastructure where a puppet master is
|
|
present, you should evaluate what your setup is. In a puppet OSS server setup
|
|
it can be useful to just use the plugin without any manifests, assets or
|
|
modules included.
|
|
In a puppet PE environment you will probably not need this plugin since the PE
|
|
server console gives you an URL that installs the agent corresponding to your
|
|
PE server.
|
|
|
|
About Puppet 5
|
|
~~~~~~~~~~~~~~
|
|
|
|
Although Puppet 5 is available for some time, there is still heavy development
|
|
going on in that version. This module does NOT support the installation of this
|
|
version at this time. If you think this should be the case, please open up an
|
|
issue on `<https://github.com/NeatNerdPrime/bootstrap-vz/>`.
|
|
|
|
Settings
|
|
~~~~~~~~
|
|
|
|
- ``manifest``: Path to the puppet manifest that should be applied.
|
|
``optional``
|
|
- ``assets``: Path to puppet assets. The contents will be copied into
|
|
``/etc/puppetlabs`` on the image. Any existing files will be overwritten.
|
|
``optional``
|
|
- ``install_modules``: A list of modules you wish to install available from
|
|
`<https://forge.puppetlabs.com/>` inside the chroot. It will assume a FORCED
|
|
install of the modules.
|
|
This list is a list of tuples. Every tuple must at least contain the module
|
|
name. A version is optional, when no version is given, it will take the
|
|
latest version available from the forge.
|
|
Format: [module_name (required), version (optional)]
|
|
- ``enable_agent``: Whether the puppet agent daemon should be enabled.
|
|
``optional - not recommended``. disabled by default. UNTESTED
|
|
|
|
An example bootstrap-vz manifest is included in the ``KVM`` folder of the
|
|
manifests examples directory.
|
|
|
|
Limitations
|
|
~~~~~~~~~~~
|
|
(Help is always welcome, feel free to chip in!)
|
|
General:
|
|
|
|
- This plugin only installs the PC1 package for now, needs to be extended to
|
|
be able to install the package of choice
|
|
|
|
Manifests:
|
|
|
|
- Running puppet manifests is not recommended and untested, see below
|
|
|
|
Assets:
|
|
|
|
- The assets path must be ABSOLUTE to your manifest file.
|
|
|
|
install_modules:
|
|
|
|
- It assumes installing the given list of tuples of modules with the following
|
|
command:
|
|
"... install --force $module_name (--version $version_number)"
|
|
The module name is mandatory, the version is optional. When no version is
|
|
given, it will pick the master version of the
|
|
module from `<https://forge.puppetlabs.com/>`
|
|
- It assumes the modules are installed into the "production" environment.
|
|
Installing into another environment e.g. develop, is currently not
|
|
implemented.
|
|
- You cannot include local modules this way, to include you homebrewn modules,
|
|
You need to inject them through the assets directive.
|
|
|
|
UNTESTED:
|
|
|
|
- Enabling the agent and applying the manifest inside the chrooted environment.
|
|
Keep in mind that when applying a manifest when enabling the agent option,
|
|
the system is in a chrooted environment. This can prevent daemons from
|
|
running properly (e.g. listening to ports), they will also need to be shut
|
|
down gracefully (which bootstrap-vz cannot do) before unmounting the
|
|
volume. It is advisable to avoid starting any daemons inside the chroot at
|
|
all.
|