Installing or upgrading Puppet Enterprise: check your preconfigured node groups
Editor's Note: This article assumes that you are using Puppet Enterprise’s node classifier in the following versions: 2016.2.x, 2016.1.x, 2015.3.x, or 2015.2.x. If you have moved classification out of the node classifier, this article does not apply.
If you are still using PE 3.8, you should upgrade now, as this version will reach end-of-life status in December 2016, and we will no longer support it.
Preconfigured node groups are the basis for classification and management of your Puppet Enterprise infrastructure. They manage the Puppet agent classification for all nodes, ensure the master has the correct configuration for hostnames and ports, and much more. Here is a complete list of the preconfigured node groups.
PE will not function as expected when the node groups are missing, or do not have the default configuration. For example:
If your MCollective node group is missing the rule to assign all agents, your agent nodes will not have the MCollective package, and therefore will not respond to MCollective commands.
Occasionally, the Puppet Enterprise installer is unable to create the preconfigured node groups or partially creates them. This affects both upgrades and fresh installations. If there are any issues, the install log will contain warnings. If the groups have been modified, it is more likely the installer will notice these changes and skip making any additional updates. This is so the installer will not overwrite your modifications. It is not uncommon to modify the node groups, however, when tuning your infrastructure.
Preconfigured node groups can also be unintentionally misconfigured by users. There are many ways you can update the groups with the wrong information — the wrong regular expression, or incorrect hostname or port, for example. Again, check your groups to make sure any error was not caused by a human misconfiguration. The complete list linked above will be helpful. Of course, having classification data backed up is always wise.
Best practices for node classification
We recommend verifying that all preconfigured node groups are present, and that each group has the correct parameters, classes, rules, environment, and parent group. Best practice is to verify this information:
Before you upgrade your existing PE installation. After you upgrade your existing PE installation. After you install PE.
We also recommend regularly collecting your classification data, backing it up, and putting it under version control. This will allow you to:
Undo any unintended changes to classification. Troubleshoot classification issues.
To collect classification data using the node classifier API's groups endpoint, use the following command on the console node:
curl -X GET \ --cert $(puppet config print hostcert) \ --key $(puppet config print hostprivkey) \ --cacert $(puppet config print localcacert) \ https://$(puppet config print server):4433/classifier-api/v1/groups > classifier_groups.json
Recommendations for correcting any misconfigurations
puppet service on the master, console, and PuppetDB nodes. This will ensure changes are not made before you test them with a
Resolve any configuration issues in the PE Infrastructure node group first.
Verify that each group has the correct parameters, classes, rules, environment, and parent group.
Verify that classification is being applied correctly. For one node from each preconfigured group, open
/opt/puppetlabs/puppet/cache/state/classes.txt, and check the list of all classes applied to that node during the last successful Puppet run.
Kaitlin Carter is a training content developer at Basho, and former support engineer at Puppet.