第 3 章 了解 heat 模板
本指南中的自定义配置使用 heat 模板和环境文件来定义 overcloud 的某些方面。本章介绍了 heat 模板的基本介绍,以便在 Red Hat OpenStack Platform director 上下文中了解这些模板的结构和格式。
3.1. Heat 模板 复制链接链接已复制到粘贴板!
director 使用 Heat 编配模板(HOT)作为 overcloud 部署计划的模板格式。HOT 格式的模板通常以 YAML 格式表示。模板的目的是定义和创建堆栈,这是 OpenStack Orchestration (heat)创建资源的集合,以及资源的配置。资源是 Red Hat OpenStack Platform (RHOSP)中的对象,可以包含计算资源、网络配置、安全组、扩展规则和自定义资源。
heat 模板有三个主要部分:
- parameters
-
这些设置传递到 heat,提供自定义堆栈以及没有传递值的参数的任何默认值。这些设置在模板的
parameters部分中定义。 - 资源
-
使用
resources部分定义资源,如计算实例、网络和存储卷,您可以在使用此模板部署堆栈时创建这些资源。Red Hat OpenStack Platform (RHOSP)包含一组跨越所有组件的核心资源。这些是作为堆栈一部分创建和配置的具体对象。RHOSP 包含一组跨越所有组件的核心资源。它们在模板的resources部分中定义。 - 输出
-
使用
outputs部分声明您的云用户可在堆栈创建后访问的输出参数。您的云用户可以使用这些参数来请求堆栈的详细信息,如部署的实例的 IP 地址,或者作为堆栈一部分部署的 Web 应用的 URL。
基本 heat 模板示例:
heat_template_version: 2013-05-23
description: > A very basic Heat template.
parameters:
key_name:
type: string
default: lars
description: Name of an existing key pair to use for the instance
flavor:
type: string
description: Instance type for the instance to be created
default: m1.small
image:
type: string
default: cirros
description: ID or name of the image to use for the instance
resources:
my_instance:
type: OS::Nova::Server
properties:
name: My Cirros Instance
image: { get_param: image }
flavor: { get_param: flavor }
key_name: { get_param: key_name }
output:
instance_name:
description: Get the instance's name
value: { get_attr: [ my_instance, name ] }
此模板使用资源类型 类型:OS::Nova::Server,创建名为 my_instance 的实例,该实例使用云用户指定的特定类别、镜像和密钥。堆栈可以返回 instance_name 的值,它称为 My Cirros Instance。
当 heat 处理模板时,它会为模板创建一个堆栈,并为资源模板创建一组子堆栈。这会创建一个堆栈层次结构,它从您通过模板定义的主堆栈分离。您可以使用以下命令查看堆栈层次结构:
$ openstack stack list --nested