Forge Home


Apply Puppet resources using tasks


25,712 latest version

5.0 quality score

Version information

  • 0.1.0 (latest)
released Apr 26th 2018
This version is compatible with:
  • Puppet Enterprise 2018.1.x, 2017.3.x, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
  • Puppet >= 4.7.0 < 6.0.0
  • , , , , , ,
  • resource

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'puppetlabs-apply', '0.1.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add puppetlabs-apply
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install puppetlabs-apply --version 0.1.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



puppetlabs/apply — version 0.1.0 Apr 26th 2018


Table of Contents

  1. Description
  2. Setup - The basics of getting started with apply
  3. Usage - Configuration options and additional functionality
  4. Reference - An under-the-hood peek at what the module is doing and how
  5. Limitations - OS compatibility, etc.


The apply module contains a task to apply a single arbitrary Puppet resource. This makes it easy to take advantage of existing Puppet content while running tasks.


The Puppet agent package must be installed on all target nodes. However, the Puppet agent service doesn't need to be running. Any external resource types will need to be present on the target node (either by installing the module or through pluginsync) before they can be used.


To run the apply::resource task with bolt

bolt task run apply::resource --nodes $TARGETNODES type=package title=vim params='{"ensure": "present"}'

This task can also be run from a bolt plan:

plan install_vim(TargetSpec $nodes) {
  run_task(apply::resource, $nodes, type => 'package', title => 'vim', params => {'ensure' => 'present'})





type String[1]: The type of resource to apply

title String[1]: The title of the resource to apply

params Hash[String[1], Data]: A map of parameter names and values to apply


On success, the result will contain the following keys:

type: The type of the resource that was applied title: The title of the resource that was applied changed: A boolean indicating whether the resource was modified by the task changes: An array of change event, each containing property, previous_value, desired_value, message representing a single property changed on the resource. Absent if the resource was not changed.

On failure, the result will contain the previous keys and additionally:

_error: An error object describing the failure failures: An array of failure events, each containing property, previous_value, desired_value, message representing a single property that failed on the resource.


This is a pre 1.0.0 release and future versions may have breaking changes.