Chapter 2. Managing Puppet Modules

2.1. Installing a Puppet Module on Satellite Server

You can install a pre-built Puppet module from the Puppet Forge. The Puppet Forge is a repository that provides Puppet modules contributed by the community. Puppet modules flagged as supported are officially supported and tested by Puppet Inc.

This example shows how to add the ntp module to managed hosts.

Procedure

  1. Navigate to forge.puppet.com and search for ntp. One of the first modules is puppetlabs/ntp.
  2. Connect to your Satellite Server using SSH and install the Puppet module:

    # puppet module install puppetlabs-ntp -i /etc/puppetlabs/code/environments/production/modules

    Use the -i parameter to specify the path and Puppet environment, for example production.

    Once the installation is completed, the output looks as follows:

    Notice: Preparing to install into /etc/puppetlabs/code/environments/production/modules ...
    Notice: Created target directory /etc/puppetlabs/code/environments/production/modules
    Notice: Downloading from https://forgeapi.puppet.com ...
    Notice: Installing -- do not interrupt ...
    /etc/puppetlabs/code/environments/production/modules
    |-| puppetlabs-ntp (v8.3.0)
      |-- puppetlabs-stdlib (v4.25.1) [/etc/puppetlabs/code/environments/production/modules]

An alternative way to install a Puppet module is to copy a folder containing the Puppet module to the module path as mentioned above. Ensure to resolve its dependencies manually.

2.2. Updating a Puppet Module

You can update an existing Puppet module using the puppet command.

Procedure

  1. Connect to your Puppet server using SSH and find out where the Puppet modules are located:

    # puppet config print modulepath

    This returns output as follows:

    /etc/puppetlabs/code/environments/production/modules:/etc/puppetlabs/code/environments/common:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules:/usr/share/puppet/modules
  2. If the module is located in the path as displayed above, the following command updates a module:

    # puppet module upgrade module name