Bolt module for bootstrapping installation of the openvox (Puppet™️) packages.
Provides some of the functionality of the puppet_agent::install tasks for openvox packages from https://apt.voxpupuli.org, https://yum.voxpupuli.org.
The puppet_agent module makes use of the Perforce repositories and collections instead.
Assumes you have Bolt installed.
Installs the platform appropriate openvox8 collection release package and the openvox-agent package by default (Puppet™️ 8).
bolt task run openvox_bootstrap::install \
--targets <target> \
--run-as rootBy default the task will install the openvox-agent package, but this
can be overridden by setting the package parameter to install
openvox-server, openvoxdb or another package from the openvox
collection.
See the install task for details.
Bolt's apply_prep function ensures that the latest version of
Puppet™️ is installed on a node by calling the
puppet_agent::install task if the agent is not detected on the node.
The openvox_bootstrap::install task can be used in its place to
instead ensure that openvox-agent is installed.
The apply_prep() function relies on Bolt's puppet_library plugin configuration.
To use openvox_bootstrap instead, configure your bolt_project.yaml with:
plugin-hooks:
puppet_library:
plugin: task
task: openvox_bootstrap::installThe openvox_bootstrap::install_build_artifact task is a development task that can be used to install a build artifact package directly from the https://artifact.voxpupuli.org repository for testing prior to release.
Minimally, you must supply the version parameter, but generally you
would also supply package unless you are installing the
openvox-agent package.
See task ref for details.
bolt task run openvox_bootstrap::install_build_artifact \
--targets <target> --version=8.17.0 \
--run-as rootThe openvox_bootstrap::configure task can be used to provide very basic initial configuration for the openvox agent.
It does not install the agent. Run openvox_bootstrap::install first. Since the agent service is installed stopped, configuration can be laid down before the first run begins the certificate request process.
It provides the following support:
- laying down an initial puppet.conf (primary use case being to set the server parameter to point to the openvox-server).
- creating a csr_attributes.yaml file for the agent to use when generating a CSR for use with autosigning scripts and to provide extension data to the generated certificate.
- ensuring the
puppetservice is in a preferred state.
NOTE: the csr_attributes.yaml will overwrite any pre-existing files, but settings for puppet.conf will be merged into an existing file if present.
With an example params.json file like this:
{
"puppet_conf": {
"main": {
"server": "puppetserver.foo"
}
},
"csr_attributes": {
"custom_attributes": {
"1.2.840.113549.1.9.7": "password"
},
"extension_requests": {
"pp_role": "thing1"
}
},
"puppet_service_running": true,
"puppet_service_enabled": true
}You can run the task like this:
bolt task run openvox_bootstrap::configure \
--targets <target> \
--params @params.json \
--run-as rootSee REFERENCE.md for the generated reference doc.
- Windows support
- Sles support (handle repository gpg key)
- MacOS support
This module started as jpartlow/openvox_bootstrap and has been renamed puppet-openvox_bootstrap and moved over to the voxpupuli organization.
It was only out and about as jpartlow/openvox_bootstrap for a few months, but if you have a reference to jpartlow/openvox_bootstrap or jpartlow/puppet-openvox_bootstrap, please update to voxpupuli/puppet-openvox_bootstrap, as my fork will be out of sync and/or experimental going forward.
Copyright (C) 2025 Joshua Partlow
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.