bolt
: installs bolt via yumrepo or release package
bolt::project
: creates required files for a bolt project. Will create one oneshot service for each plan
installs bolt via yumrepo or release package
include bolt
class { 'bolt':
base_url => 'https://mirror.corp.internal',
}
class { 'bolt':
use_release_package => false,
}
class { 'bolt':
base_url => 'https://internal.mirror.corp/keys/',
yumrepo_base_url => 'https://internal.mirror.corp/puppet/puppet_tools/rhel8/',
}
The following parameters are available in the bolt
class:
Data type: String[1]
desired version for bolt or absent
Default value: 'installed'
Data type: Stdlib::HTTPSUrl
HTTPS URL to the yumrepo base
Default value: $facts['os']['family'] ? { 'Debian' => 'https://apt.puppet.com/', 'RedHat' => 'https://yum.puppet.com/'
Data type: String[1]
filename for the release package rpm
Default value: $facts['os']['family'] ? { 'Debian' => "puppet-release-${fact('os.distro.codename')}.deb", 'RedHat' => "puppet-tools-release-el-${facts['os']['release']['major']}.noarch.rpm"
Data type: String[1]
name of the GPG key filename in the repo
Default value: $facts['os']['family'] ? { 'Debian' => 'DEB-GPG-KEY-puppet-20250406', 'RedHat' => 'RPM-GPG-KEY-puppet-20250406'
Data type: Boolean
enable/disable the puppet-tools-release package installation. When disabled, we will configure the repo as yumrepo resource
Default value: $facts['os']['family'] ? { 'Debian' => false, 'RedHat' => true
Data type: Stdlib::HTTPSUrl
configure the full repo URL, useful when you don't exactly mirror yum.puppet.com
Default value: "${base_url}puppet-tools/el/${facts['os']['release']['major']}/\$basearch"
Data type: Boolean
when true, a repo will be added to install bolt. Useful when you manage repos externally. See also $use_release_package
Default value: true
creates required files for a bolt project. Will create one oneshot service for each plan
bolt::project { 'peadmmig': }
-> file { '/opt/peadmmig/profiles::convert.json':
owner => 'peadmmig',
group => 'peadmmig',
content => { 'primary_host' => $facts['networking']['fqdn'] }.stdlib::to_json_pretty,
}
The following parameters are available in the bolt::project
defined type:
Data type: Stdlib::Absolutepath
rootdir where the project will be created into
Default value: '/opt/'
Data type: String[1]
the name of the project
Default value: $name
Data type: String[1]
the user that will own the files and run the service
Default value: $project
Data type: String[1]
the group for all files
Default value: $project
Data type: Boolean
if we should create the user+group or not
Default value: true
Data type: String[1]
the desired code environment we will use
Default value: 'peadm'
Data type: Array[Stdlib::Absolutepath]
an array of directories where code lives
Default value: ["/etc/puppetlabs/code/environments/${environment}/modules", "/etc/puppetlabs/code/environments/${environment}/site", '/opt/puppetlabs/puppet/modules']