Openstack-Heat研究文档.docx

上传人:11****ws 文档编号:2124861 上传时间:2019-04-29 格式:DOCX 页数:21 大小:244.58KB
下载 相关 举报
Openstack-Heat研究文档.docx_第1页
第1页 / 共21页
Openstack-Heat研究文档.docx_第2页
第2页 / 共21页
Openstack-Heat研究文档.docx_第3页
第3页 / 共21页
Openstack-Heat研究文档.docx_第4页
第4页 / 共21页
Openstack-Heat研究文档.docx_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、陕西省信息化工程研究院软件研发部 第 1 页 / 共 21 页 Openstack Heat 组件研究类 别 云计算项目名称 Openstack Heat组件研究版 本 日期 作者 备注说明1.0 2015/08/31 程成 初稿审 核密 级 秘密应用范围 陕西省信息化工程研究院软件研发部文件状态:【】 草稿【 】 正式发布【】 正在修改中版权所有 陕西省信息化工程研究院陕西省信息化工程研究院软件研发部 第 2 页 / 共 21 页 目 录OPENSTACK HEAT 研究 .31. HEAT 简介 .32. HEAT 架构 .32.1 Heat-engine.42.2 Heat Client

2、.42.3 Heat-api .52.4 heat-api-cfn.52.5 Heat-cfntools .53. HEAT 模板 .53.1 *formatversion 字段介绍 .63.2 heat_template_version 字段介绍 .74. HEAT 应用 .154.1 命令行使用 .154.2 界面 Dashboard 使用 .164.3 实例:Wordpress 应用部署 .175. 参考文献: .21陕西省信息化工程研究院软件研发部 第 3 页 / 共 21 页 Openstack Heat 研究1. Heat 简介heat 简单来说就是用户可以预先定义一个规定格式的任

3、务模版,任务模版中定义了一连串的相关任务(例如用某配置开几台虚拟机,然后在其中一台中安装一个 mysql 服务,设定相关数据库属性,然后再配置几台虚拟机安装 web服务群集等等) ,然后将模版交由 Heat 执行,就会按一定的顺序执行 heat 模版中定义的一连串任务。任务模板中的一连串任务就是用来指导 openstack 创建应用系统。在 heat 中,这个创建的应用系统称之为 Stack。Nova 是直接创建虚拟机, Heat 则是直接创建应用系统。Heat 作为相对独立的模块建立在 Openstack 其他模块之上。2. Heat 架构基于预先定义的模板,Heat 通过自身的 orche

4、stration Engine 来实现复杂应用的创建启动。Heat 原生的模板格式目前还在不停地演进中,但是对CloudFormation 的格式具有良好的支持。存在的 CloudFormation 的模板可以在OpenStack 平台通过 heat 来启动。从架构来看,Heat 有一些重要的组件,下图为各组件之间的关系图。陕西省信息化工程研究院软件研发部 第 4 页 / 共 21 页 2.1 Heat-engineheat-engine 是 heat 中的核心模块,主要的逻辑业务处理模块。此模块最终完成应用系统的创建和部署。整个 heat 的实现最为关键的代码在 heat-engine,he

5、at 就是来操作 stack,管理 stack 的整个生命周期: create, update,delete。重点看 create 的过程,查看 heat stack-create 命令:三个关键的 optional arguments:template-file: 模板文件environment-file: 环境文件parameters: 设置模板文件中的 parameters2.2 Heat ClientHeat client 是 Heat project 提供的 CLI 工具,类似于其他项目的 client。对于heat tools 的使用,可以通过安装后查看。陕西省信息化工程研究院软件

6、研发部 第 5 页 / 共 21 页 2.3 Heat-apiHeat-api 类似于 nova-api,提供了原生的 restful API 对外使用。用户对 API的调用,由 heat-api 处理之后,最终通过 RPC 传递给 Heat-engine 来进一步处理。2.4 heat-api-cfnheat-api-cfn 组件则提供了 Amazon style 的查询 API,因此可以完全兼容于Amazon 的 CloudFormation,对于 API 的请求,同 heat-api 类似,处理之后,通过 RPC 传递给 heat-engine 进一步处理.2.5 Heat-cfntoo

7、ls这个工具是一个单独的工具,代码没在 heat project 里面,可以单独下载。这个工具主要用来完成虚拟机实例内部的操作配置任务。在创建虚拟机竟像时,需要在镜像中安装 heat-cfntools 工具。3. Heat 模板Heat 的目的之一就是致力于应用系统的自动化部署,那么若要自动化部署,则需要存在某个语言规范来描述应用系统,并且解决应用系统在不同场合下的配置适应问题。Heat 模板文件则是用来对前者的支持。模板文件的格式多种多样,例如, Amazon 提供的 cloudformation 格式,Heat 自有的格式 HOT, Json 等等,格式之间的差别在于表现形式。templa

8、te 中有三个 formatversion,第一种是 aws 的格式,表示这是一个 json陕西省信息化工程研究院软件研发部 第 6 页 / 共 21 页 文件; 第二种是 heat 为了扩展 aws 并且更好的加入注释,引入的 yaml 格式文件;第三种是 openstack 的 heat 特有的 hot 格式的头部,也是基于 yaml 格式的。“AWSTemplateFormatVersion“: “2010-09-09“ “HeatTemplateFormatVersion“: “2012-12-12“ “heat_template_version“: “2013-05-23 “ 3.1

9、 *formatversion 字段介绍AWSTemplateFormatVersion 和 HeatTemplateFormatVersion 支持的字段”AWSTemplateFormatVersio”格式版本,指定了编写模板时依据的AWS CloudFormation 模板版本 ;“HeatTemplateFormatVersion”格式版本,指定了编写模板时依据的HeatTemplateFormation 模板版本 “Description” 字段,可选描述,记录该模板的描述。 “Mappings” 可选映像,通过映像部分,可以声明条件值,可在 Resources和 Outputs 部

10、分使用内建函数 Fn:FindInMap 将与键对应的值返回到 Mappings部分声明的双层映射中。 “Parameters”, 可选字段,可以定义用于控制是否创建某些资源或者是否在堆栈创建或更新过程中为某些资源属性分配值的条件。 “Resources”, 资源部分将列出堆栈的成员资源。每项资源将予以分别列明,并指定创建此特定资源所必需的资源属性。可在资源和输出部分取消资源参考。“Outputs”,可选输出,在 Outputs 部分,您可以选择对响应 陕西省信息化工程研究院软件研发部 第 7 页 / 共 21 页 aws cloudformation describe-stacks 命令而返

11、回的自定义 值进行定义。这些输出值将包括基于文本、资源、参数、虚拟参数和内部函数的信息。3.2 heat_template_version 字段介绍这里具体介绍,openstack 的 hot 模板格式,后边的应用实例也以基于 hot 格式。 heat_template_version: 2013-05-23 2013-05-23 或者是在这个日期之后的日期表明 YAML 被定义为是 HOT 模板 description: 用来描述模板的一些信息,通常可以在创建完模板之后看到。 parameter_groups: 用来表明一些参数应该被怎样分组以及提供参数的方式,这部分是可选的,当没有输出值时

12、可以省略。 Parameters: 用来对初始化模板时必须要提供的一些参数的说明,是可选的,当没有输出值时可以省略。 Resources: 这部分包含模板单一资源的声明,必须包含至少一个应该在HOT 模板中被定义的资源,否则模板不会做任何实例化的事。 Outputs: 这部分用于在模板被实例化后输出给用户可以使用参数信息,这部分是可选的,当没有输出值时可以省略3.2.1 parameter_groups 详细介绍这些组被定义为一个列表,列表中每个组包含一个相关的参数列表。这些列表用于定义参数的期望顺序。每个参数应该跟只使用一次参数名称同时将这陕西省信息化工程研究院软件研发部 第 8 页 / 共

13、 21 页 个参数绑定到 parameters section 中的参数定义部分的指定的组相关联。下面看下 parameter_groups 具体内容: parameter_groups: - label: description: parameters: - - label 标签 一个定义与参数相关联的组的可读的标签。 description 这个属性允许给参数组一个可读的描述。Parameters 与参数组相关联的参数列表。 Param name 在后面参数部分被定义的参数的名字。 3.2.2 Parameters 详细介绍 参数部分允许为在实例化模板的时候指定输入参数,这些参数通常被用于

14、自定义每个部署或者应用,例如设定自定义的用户名和密码。每个参数会在一个单独的小模块(嵌套块)中被定义,模块中第一行是参数的名称,其他的属性比如类型或者默认值将作为模块中其他的的元素。下面看下 parameter 的具体内容: parameters: : type: label: description: default: hidden: 陕西省信息化工程研究院软件研发部 第 9 页 / 共 21 页 constraints: param name 每个参数模块中所定义的参数的名字。 Type 这个属性是参数的类型。目前所支持的类型有tring、number、comma_delimited_li

15、st、json、 boolean。 Label 这个可选属性允许为参数提供一个可读的名字,通常省略。 Description 这个可选属性允许为参数提供一个可读的描述。 Default 这个可选属性是为了在部署或者应用中没有指定参数的值 时定义一个默认的值。 Hidden 这个可选属性允许当从模板运行时创建一个栈的时候隐藏参数的值,如果没有指明,默认值是 false。 Constraints 这个可选属性允许指明其他的参数限制条件,比如数字参数的最大值或者最小值。 下面是一个关于两个参数定义的简单的例子,可以看出 description 和 label实际上是可选的,但是为每个参数提供 des

16、cription 和 label 是很好的做法。 Parameters: user_name: type: string label: User Name description: User name to be configured for the appport_number:type: number label: Port Number description: Port number to be configured 陕西省信息化工程研究院软件研发部 第 10 页 / 共 21 页 参数定义的限制模块允许定义额外的参数值的限制条件,在模板实例化的时候,用户所提供的参数值会被这些条件去验

17、证以确保用户所提供的值是符合用户的期望的,限制条件被定义在一个列表中,如下所示: constraints: - : description: constraint type 限制条件的类型表明所定义的限制条件的种类 constraint definition 这个是根据限制类型所定义的具体的限制条件 description 这个可选属性允许指定当前限制条件的具体描述,例如,当所提供的输入值不符合限制条件,这个描述内容将会被呈现给用户(其实就是创建过程中如果出现错误,错误的具体描述) ,如果省略,一个默认的值将会呈现给用户。下面的例子是定义了一个带有两个限制条件的一个字符串参数,表明当尽管每个限制条件的描述是可选的,为每个应用部署时提供限制条件的描述是非常重要的。 Parameters: user_name: type: string label: User Name description: User name to be configured for the application constraints: - length: min: 6, max: 8 description: User name must be between 6 and 8 长度的限制适用于字符串类型的参数,允许定义字符串参数值的最大长度

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。