第 5 章 编配


director 使用 Heat 编配模板(HOT)作为其 Overcloud 部署计划的模板格式。HOT 格式的模板主要以 YAML 格式表示。模板的目的是定义和创建堆栈,这是 Heat 创建和配置每个资源的资源集合。资源是 OpenStack 中的对象,可以包含计算资源、网络配置、安全组、扩展规则和自定义资源。

本章提供了一些了解 HOT 语法的基本知识,以便您可以创建自己的模板文件。

5.1. 学习 Heat 模板基础知识

5.1.1. 了解 Heat 模板

The structure of a Heat template has three main sections:
Copy to Clipboard Toggle word wrap
参数
这些设置传递到 Heat,提供自定义堆栈以及未传递值的参数的任何默认值。它们在模板的 parameters 部分中定义。
Resources
这些是作为堆栈一部分创建和配置的具体对象。OpenStack 包含一组跨越所有组件的核心资源。它们在模板的 resources 部分中定义。
输出
这些是在堆栈创建后从 Heat 传递的值。您可以通过 Heat API 或客户端工具访问这些值。它们在模板的 output 部分中定义。

以下是基本 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 ] }
Copy to Clipboard Toggle word wrap

此模板使用资源类型类型: OS::Nova::Server 创建具有特定类别、镜像和密钥的名为 my_instance 的实例。堆栈返回 instance_name 的值,即 My Cirros Instance

重要

Heat 模板还需要 heat_template_version 参数,该参数定义要使用的语法版本以及可用的功能。如需更多信息,请参阅 官方 Heat 文档

5.1.2. 了解环境文件

环境文件是特殊的模板,为您的 Heat 模板提供自定义。这包括三个关键部分:

参数
以下是您应用到模板参数的常见设置。它们在环境文件的 parameters 部分中定义。
参数默认值
这些参数修改模板中参数的默认值。它们在环境文件的 parameter_defaults 部分中定义。
Resource Registry
本节定义自定义资源名称,链接到其他 Heat 模板。这基本上提供了一种创建核心资源集合中不存在的自定义资源的方法。它们在环境文件的 resource_registry 部分中定义。

以下是基本环境文件的示例:

resource_registry:
  OS::Nova::Server::MyServer: myserver.yaml

parameter_defaults:
  NetworkName: my_network

parameters:
  MyIP: 192.168.0.1
Copy to Clipboard Toggle word wrap

这会创建一个名为 OS::Nova::Server::MyServer 的新资源类型。myserver.yaml 文件是一个 Heat 模板文件,它为此资源类型提供实施,可覆盖任何内置内置文件。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat