Problem:
I have created a new Puppet module, added it to /etc/puppetlabs/code/modules
on the Foreman server, and successfully imported the module and its sole class in the Foreman UI via Configure > Puppet ENC > Classes. This matches our process for dozens of existing modules. When I add the class to a Host Group or a single Puppet client and do a Puppet run, the resources for that class are not applied and appear to be totally ignored. There aren’t any errors present during or after the Puppet run, and running with --debug
does not show the class present in the output as I’d expect. Running hammer host puppet-classes --host <HOSTNAME>
in Foreman shows the class present in the list. The Puppet code passes both puppet parser validate
and puppet-lint
.
Interestingly, copying the modules
directory to the local filesystem on the client and running puppet apply --modulepath=/root/modules/ -e "include <MODULE_NAME>"
works and applies all module resources as expected.
Expected outcome:
Successful application of all file, exec, and package resources on hosts with the class applied.
Foreman and Proxy versions:
Foreman: 3.9.1
Proxy: 3.9.1
Foreman and Proxy plugin versions:
foreman_puppet: 6.1.1
Distribution and version:
Ubuntu 20.04
Other relevant data:
This is being tested on clients with Oracle Linux 7, Oracle Linux 8, Ubuntu 20.04, and Ubuntu 22.04. All are experiencing the same behavior.
When class changes are made for other modules, everything works as expected.