Tasks and plans are packaged in Puppet modules, so you can install them as you would any module and manage them with a Puppetfile.
Bolt is packaged with a collection of useful modules to support common workflows.
Modules with useful task and plan content
package: Install, uninstall, update, and check the status of packages.
service: Manage and inspect the state of services.
puppet_conf: Inspect and change the configuration options in the
facts: Retrieve facts from specified nodes.
puppet_agent: Install Puppet Agent package.
reboot: Manage system reboots.
Core Puppet providers
augeas_core: Manage configuration files using Augeas.
host_core: Manage host entries in a hosts file.
scheduled_task: Provider capable of using the Version 2 Windows API for task management.
cron_core: Install and manage
mount_core: Manage mounted filesystems and mount tables.
selinux_core: Manage Security-Enhanced Linux.
yumrepo_core: Manage client yum repo configurations by parsing INI configuration files.
zone_core: Manage Solaris zone resources.
Bolt specific modules that are not available on the Forge
Modules that contain helper code for writing your own tasks
Configure Bolt to download and install modules
Before you can use Bolt to install modules, you must first create a Puppetfile. A Puppetfile is a formatted text file that contains a list of modules and their versions. It can include modules from the Forge or a Git repository.
For modules that require Ruby gems, see Install gems with Bolt packages
For more details about specifying modules in a Puppetfile, see the Puppetfile documentation.
- Create a file named Puppetfile and store it in the Bolt project directory.
- Open the Puppetfile in a text editor and add the modules and versions that you want to install. If the modules have dependencies, list those as well.
# Modules from the Puppet Forge. mod 'puppetlabs-apache', '4.1.0' mod 'puppetlabs-postgresql', '5.12.0' mod 'puppetlabs-puppet_conf', '0.3.0' mod 'puppetlabs-facts', '0.3.1' # Modules from a Git repository. mod 'puppetlabs-haproxy', git: 'https://github.com/puppetlabs/puppetlabs-haproxy.git', ref: 'master'
- Add any task or plan modules stored locally in
modules/to the list. If these modules are not listed in the Puppetfile, they are deleted.
mod 'my_awesome_module', local: true
Install any modules that you don't want to manage with the Puppetfile to a different subdirectory. Conventionally,
site-modulesis used for this purpose and is included on the default
- From a terminal, install the modules listed in the Puppetfile:
bolt puppetfile install.
Bolt installs modules to the first directory in the modulepath setting. By default, this is the
modules/subdirectory inside the Bolt project directory. To override this location, update the modulepath setting in the Bolt config file.