8.4. 应用自定义 Puppet 配置

在特定情况下,您可能会需要在 Overcloud 节点上安装并配置一些额外的组件。您可以通过在主配置完成后,在节点上应用一个自定义 Puppet manifest 来达到这个目的。作为一个基本的例子,您可以在每个节点上安装 motd。这会首先创建一个 Heat 模板(/home/stack/templates/custom_puppet_config.yaml)来启动 Puppet 配置。
resources:
  ExtraPuppetConfig:
    type: OS::Heat::SoftwareConfig
    properties:
      config: {get_file: motd.pp}
      group: puppet
      options:
        enable_hiera: True
        enable_facter: False

  ExtraPuppetDeployments:
    type: OS::Heat::SoftwareDeployments
    properties:
      config: {get_resource: ExtraPuppetConfig}
      servers: {get_param: servers}
这会在模板内包括 /home/stack/templates/motd.pp,并把它传递给节点进行配置。motd.pp 文件本身包括了我们的 Puppet 类来进行安装和配置 motd
接下来,创建一个环境文件(/home/stack/templates/puppet_post_config.yaml),它会把我们的 Heat 模板注册为 OS::TripleO::NodeExtraConfigPost: 资源类型。
resource_registry:
  OS::TripleO::NodeExtraConfigPost: ~/templates/custom_puppet_config.yaml
最后,在创建或更新 Overcloud 堆栈时包括这个环境文件:
$ openstack overcloud deploy --templates -e ~/templates/custom_puppet_config.yaml
这会把 motd.pp 中的配置应用到 Overcloud 的所有节点上。