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'],
}
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 配置能够使用层次结构数据。
    • enable_ facter 选项使 Puppet 配置能够使用事实命令中的系统事实。

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat