Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

使用 Contrail Heat 模板

Heat 是 OpenStack 计划的编排引擎。Heat 支持基于由文本文件组成的模板启动多个云应用程序。

Heat 简介

Heat 模板描述了云应用程序的基础架构,例如网络、服务器、浮动 IP 地址等,并可用于管理该应用的整个生命周期。

当应用基础架构发生变化时,热火队模板可以修改,以自动反映这些更改。如果系统完成一个应用,Heat 还可以删除所有应用程序资源。

Heat 模板可以记录资源之间的关系,例如,哪些网络通过策略实施进行连接,随后调用 OpenStack REST API,该 API 以正确的顺序创建启动由 Heat 模板管理的应用程序所需的必要基础架构。

热架构

Heat 通过 Python 应用程序实现,包括以下内容:

  • heat-client- 与 heat-api 应用程序通信以运行 Heat API 的 CLI 工具。

  • heat-api-提供 OpenStack 原生 REST API,通过远程过程调用 (RPC) 将 API 请求发送至热火引擎,以处理 API 请求。

  • heat-engine- 负责编排模板的启动并将事件提供回 API 使用者。

支持 Heat 第 2 版资源

从 Contrail 3.0.2 版开始,Contrail Heat 资源和模板使用 Heat 版本 2 资源从 Contrail 方案自动生成。Contrail 3.0.2 版是 3.x 版本中使用热火与 Contrail 的最低要求版本。Contrail Heat 第 2 版资源属于以下层次结构: OS::ContrailV2::<ResourceName>

生成的资源和模板是 Contrail Python 软件包的一部分,位于目标安装中的以下目录中:

/usr/lib/python2.7/dist-packages/vnc_api/gen/heat/

heat/目录具有以下子目录:

  • 资源/— 包含 Contrail-heat 插件的所有资源,该插件在热火引擎服务环境中运行。

  • templates/— 包含每个资源的示例模板。每个示例模板都会展示方案中的每个可能参数。当您为网络设计构建更复杂的模板时,请使用示例模板作为参考。

  • zhv/— 包含每个模板的输入环境。

下面包含 contrail-heat 支持的所有已生成插件资源列表:

https://github.com/tungstenfabric/tf-heat-plugin/tree/master/contrail_heat/new_templates

热第 1 版资源弃用

层级结构 OS::Contrail::<ResourceName> 中的 Heat 版本 1 资源已弃用,不应使用 Heat 版本 1 模板创建新的服务模板。

Heat 版本 2 使用服务模板和端口元组示例工作流程

使用 Contrail 服务模板第 2 版,用户可以创建端口,并通过端口元组对象将其绑定到基于虚拟机 (VM) 的服务实例。使用版本 2 服务模板创建的所有对象都对 Contrail 热火引擎直接可见,并由 Heat 直接管理。

下面显示了创建将由 Heat 管理的端口元和服务实例的基本工作流程步骤:

  1. 创建服务模板。在版本字段中选择 2。

  2. 为刚刚创建的服务模板创建服务实例。

  3. 创建端口元对象。

  4. 使用 Nova VM 启动或不启动虚拟机创建端口。

  5. 将每个端口标记为左、右、mgmt 等,并将端口添加到端口元对象中。

    为单个端口元组中的每个端口使用唯一标签。名为左、右的标签用于转发。

  6. 将端口元组链接到服务实例。

  7. 启动服务实例。

示例:使用 Heat 创建服务模板

以下是如何使用 Heat 创建服务模板的示例。

  1. 定义一个模板以创建服务模板。

  2. 创建环境文件以定义要放入模板文件中变量的值。

  3. 使用以下命令启动模板和环境文件,创建 Heat 堆栈:

    heat stack create stack1 –f service_template.yaml –e service_template.env

    或者对 OpenStack 的最新版本使用此命令