第 7 章 使用 heat 模板


本指南中的自定义配置使用 heat 模板和环境文件来定义 overcloud 的某些方面。本章介绍了 Red Hat OpenStack Platform 上下文中 heat 模板的结构的基本介绍。模板的目的是定义和创建堆栈,这是 heat 创建的资源集合,以及资源的配置。资源是 OpenStack 中的对象,可以包含计算资源、网络配置、安全组、扩展规则和自定义资源。

heat 模板的结构包含三个主要部分:

参数

参数是传递给 heat 的设置。使用这些参数定义和自定义默认值和非默认值。在模板的 parameter 部分中定义这些参数。

Resources

资源是您要创建和配置堆栈的一部分的特定对象。OpenStack 包含一组核心资源,跨越所有组件。在模板的 resources 部分中定义资源。

输出

这些值是在堆栈创建后从 heat 传递的值。您可以通过 heat API 或客户端工具访问这些值。在模板的 output 部分中定义这些值。

当 heat 处理模板时,它会为模板创建堆栈,并为资源模板创建一组子堆栈。您使用模板定义的主堆栈中的这种堆栈层次结构。您可以使用以下命令查看堆栈层次结构:

$ heat stack-list --show-nested

7.1. 核心 heat 模板

Red Hat OpenStack Platform 包含 overcloud 的核心 heat 模板集合。您可以在 /usr/share/openstack-tripleo-heat-templates 目录中找到此集合。

此集合中有许多 heat 模板和环境文件。本节介绍可用于自定义部署的主文件和目录。

overcloud.j2.yaml

此文件是用于创建 overcloud 环境的主要模板文件。此文件使用 Jinja2 语法并迭代模板中的某些部分来创建自定义角色。Jinja2 格式在 overcloud 部署期间呈现为 YAML。

overcloud-resource-registry-puppet.j2.yaml

此文件是您用于创建 overcloud 环境的主要环境文件。此文件包含 overcloud 镜像上 Puppet 模块的一组配置。在 director 将 overcloud 镜像写入每个节点后,heat 会使用此环境文件中注册的资源启动每个节点的 Puppet 配置。此文件使用 Jinja2 语法并迭代模板中的某些部分来创建自定义角色。Jinja2 格式在 overcloud 部署期间呈现为 YAML。

roles_data.yaml

此文件包含 overcloud 中角色的定义,并将服务映射到每个角色。

network_data.yaml

此文件包含 overcloud 中网络及其属性的定义,包括子网、分配池和 VIP 状态。默认 network_data.yaml 文件只包含默认网络: External、Internal Api、Storage、Storage Management、Tenant 和 Management。您可以创建自定义 network_data.yaml 文件,并使用 -n 选项将其包含在 openstack overcloud deploy 命令中。

plan-environment.yaml

此文件包含 overcloud 计划的元数据定义,包括计划名称、您要使用的主模板以及您要应用到 overcloud 的环境文件。

capabilities-map.yaml

此文件包含 overcloud 计划的环境文件映射。使用此文件在 director Web UI 中描述和启用环境文件。如果您在 environment 目录中包含自定义环境文件,但没有在 capabilities-map.yaml 文件中定义这些文件,您可以在 web UI 的 Overall Settings 页面的 Other 子选项卡中找到这些环境文件。

environments

此目录包含额外的 heat 环境文件,可用于创建 overcloud。这些环境文件为您的 Red Hat OpenStack Platform 环境启用额外的功能。例如,您可以使用 cinder-netapp-config.yaml 环境文件为块存储服务(cinder)启用 NetApp 后端存储。如果您在 environment 目录中包含自定义环境文件,但没有在 capabilities-map.yaml 文件中定义这些文件,您可以在 web UI 的 Overall Settings 页面的 Other 子选项卡中找到这些环境文件。

network

此目录包含一组 heat 模板,可用于创建隔离的网络和端口。

puppet

此目录包含 puppet 模板。overcloud-resource-registry-puppet.j2.yaml 环境文件使用 puppet 目录中的文件来驱动每个节点上的 Puppet 配置应用。

puppet/services

此目录包含可组合服务架构中所有服务的 heat 模板。

extraconfig

此目录包含可用于启用额外功能的模板。例如,您可以使用 extraconfig/pre_deploy/rhel-registration 目录,将节点注册到 Red Hat Content Delivery 网络,或使用您自己的 Red Hat Satellite 服务器注册。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.