Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

6.17. Applying Custom Puppet Configuration

In certain circumstances, you might need to install and configure some additional components to your Overcloud nodes. You can achieve this with a custom Puppet manifest that applies to nodes on after the main configuration completes. As a basic example, you might intend to install motd to each node. The process for accomplishing is to first create a Heat template (/home/stack/templates/custom_puppet_config.yaml) that launches Puppet configuration.
heat_template_version: 2014-10-16

description: >
  Run Puppet extra configuration to set new MOTD

    type: json

    type: OS::Heat::SoftwareConfig
      config: {get_file: motd.pp}
      group: puppet
        enable_hiera: True
        enable_facter: False

    type: OS::Heat::SoftwareDeployments
      config: {get_resource: ExtraPuppetConfig}
      servers: {get_param: servers}
This includes the /home/stack/templates/motd.pp within the template and passes it to nodes for configuration. The motd.pp file itself contains the Puppet classes to install and configure motd.
Next, create an environment file (/home/stack/templates/puppet_post_config.yaml) that registers your heat template as the OS::TripleO::NodeExtraConfigPost: resource type.
  OS::TripleO::NodeExtraConfigPost: /home/stack/templates/custom_puppet_config.yaml
And finally include this environment file when creating or updating the Overcloud stack:
$ openstack overcloud deploy --templates -e /home/stack/templates/puppet_post_config.yaml
This applies the configuration from motd.pp to all nodes in the Overcloud.