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'],
}
Copy to Clipboard Toggle word wrap

此 Puppet 配置利用 cinder::backend::nfs 定义的类型来创建新的资源。要通过 Heat 应用此资源,请创建一个运行 Puppet 清单的基本 Heat 模板(puppet-config.yaml):

heat_template_version: 2014-10-16

parameters:
  servers:
    type: json

resources:
  ExtraPuppetConfig:
    type: OS::Heat::SoftwareConfig
    properties:
      group: puppet
      config:
        get_file: example-puppet-manifest.pp
      options:
        enable_hiera: True
        enable_facter: False

  ExtraPuppetDeployment:
    type: OS::Heat::SoftwareDeployments
    properties:
      config: {get_resource: ExtraPuppetConfig}
      servers: {get_param: servers}
      actions: ['CREATE','UPDATE']
Copy to Clipboard Toggle word wrap

接下来,创建一个环境文件(puppet_config.yaml),将 Heat 模板注册为 OS::TripleO::NodeExtraConfigPost 资源类型。

resource_registry:
  OS::TripleO::NodeExtraConfigPost: puppet_config.yaml
Copy to Clipboard Toggle word wrap

本例类似于使用上一节中的 脚本 hook 示例中的 SoftwareConfigSoftwareDeployments。但是,在这个示例中有一些区别:

  1. 我们设置 group: puppet,以便我们执行 puppet hook。
  2. config 属性使用 get_file 属性来引用包含我们额外配置的 Puppet 清单。
  3. options 属性包含一些特定于 Puppet 配置的选项:

    • enable_hiera 选项使 Puppet 配置能够使用 Hiera 数据。
    • enable_facter 选项可让 Puppet 配置使用 facter 命令中的系统事实。

本例演示了如何将 Puppet 清单作为 Overcloud 软件配置的一部分包含在内。这提供了一种在 Overcloud 镜像中应用现有 Puppet 模块的某些配置类的方法,帮助您自定义 Overcloud 以使用某些软件和硬件。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部