5.7. Puppet:将自定义配置应用到 Overcloud
之前,我们讨论了为 OpenStack Puppet 模块添加新后端的配置。本节介绍 director 如何执行新配置的应用程序。
Heat 模板提供了一个 hook,允许您将 Puppet 配置应用到 OS::Heat::SoftwareConfig 资源。这个过程和我们包含和执行 Bash 脚本的方式类似。但是,我们改为使用 group: puppet hook,而不是 group: script 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 配置能够使用 Hiera 数据。 -
enable_facter选项可让 Puppet 配置使用facter命令中的系统事实。
-
本例演示了如何将 Puppet 清单作为 Overcloud 软件配置的一部分包含在内。这提供了一种在 Overcloud 镜像中应用现有 Puppet 模块的某些配置类的方法,帮助您自定义 Overcloud 以使用某些软件和硬件。