5.6. 将自定义 Puppet 配置应用到 Overcloud
之前,我们讨论了将新后端的配置添加到 OpenStack Puppet 模块中。本节介绍 director 如何执行新配置的应用程序。
Heat 模板提供 hook,供您通过 OS::Heat::SoftwareConfig 资源应用 Puppet 配置。此过程类似于我们包括和执行 Bash 脚本的方式。但是,我们不使用 group: script hook,而是使用 group: puppet hook。
例如,您可能有一个 Puppet 清单(example-puppet-manifest.pp),它使用官方 Cinder Puppet 模块启用 NFS Cinder 后端:
cinder::backend::nfs { 'mynfsserver':
nfs_servers => ['192.168.1.200:/storage'],
}
cinder::backend::nfs { 'mynfsserver':
nfs_servers => ['192.168.1.200:/storage'],
}
此 Puppet 配置使用 cinder::backend::nfs 定义类型来创建一个新资源。要通过 Heat 应用此资源,请创建一个运行 Puppet 清单的基本 Heat 模板(puppet-config.yaml):
接下来,创建一个环境文件(puppet_config.yaml),它将我们的 Heat 模板注册为 OS::TripleO::NodeExtraConfigPost 资源类型。
resource_registry: OS::TripleO::NodeExtraConfigPost: puppet_config.yaml
resource_registry:
OS::TripleO::NodeExtraConfigPost: puppet_config.yaml
本例与使用上一节中 脚本 hook 示例中的 SoftwareConfig 和 SoftwareDeployments 类似。但是,在这个示例中有一些区别:
-
我们设置
group: puppet,以便我们执行puppethook。 -
config属性使用get_file属性来引用包含额外配置的 Puppet 清单。 options属性包含一些特定于 Puppet 配置的选项:-
enable_hiera选项使 Puppet 配置能够使用层次结构数据。 -
enable_选项使 Puppet 配置能够使用事实命令中的系统事实。facter
-
本例演示了如何将 Puppet 清单包含为 Overcloud 的软件配置的一部分。这提供了一种方式,可以对 Overcloud 镜像上的现有 Puppet 模块应用某些配置类,这有助于自定义 Overcloud 以使用某些软件和硬件。