Openstack Heat组件研究
文件状态: 【√】 草稿 类 别 云计算 项目名称 Openstack Heat组件研究 日期 2015/08/31 秘密 作者 程成 备注说明 初稿 【 】 正式发布 版本 【】 正在修改中 审 核 密级 1.0 应用范围 陕西省信息化工程研究院软件研发部 版权所有 陕西省信息化工程研究院 陕西省信息化工程研究院软件研发部第1页/ 共21页
目 录
OPENSTACK HEAT研究..................................................................................................................... 3
1. HEAT简介 ................................................................................................................................. 3 2. HEAT架构 ................................................................................................................................. 3
2.1 2.2 2.3 2.4 2.5
Heat-engine ..................................................................................................................................... 4 Heat Client ....................................................................................................................................... 4 Heat-api ........................................................................................................................................... 5 heat-api-cfn ...................................................................................................................................... 5 Heat-cfntools ................................................................................................................................... 5
3. HEAT模板 ................................................................................................................................. 5
3.1 3.2
*formatversion字段介绍 ................................................................................................................ 6 heat_template_version字段介绍 .................................................................................................... 7
4. HEAT应用 ............................................................................................................................... 14
4.1 4.2 4.3
命令行使用 .............................................................................................................................. 14 界面Dashboard使用 ............................................................................................................... 16 实例:Wordpress应用部署 .................................................................................................... 17
5. 参考文献: ............................................................................................................................. 20
陕西省信息化工程研究院软件研发部第2页/ 共21页
Openstack Heat研究
1. Heat简介
heat简单来说就是用户可以预先定义一个规定格式的任务模版,任务模版中定义了一连串的相关任务(例如用某配置开几台虚拟机,然后在其中一台中安装一个mysql服务,设定相关数据库属性,然后再配置几台虚拟机安装web服务群集等等),然后将模版交由Heat执行,就会按一定的顺序执行heat模版中定义的一连串任务。
任务模板中的一连串任务就是用来指导openstack创建应用系统。在heat中,这个创建的应用系统称之为Stack。Nova是直接创建虚拟机,Heat则是直接创建应用系统。Heat作为相对独立的模块建立在Openstack其他模块之上。
2. Heat架构
基于预先定义的模板,Heat通过自身的orchestration Engine来实现复杂应用的创建启动。Heat原生的模板格式目前还在不停地演进中,但是对CloudFormation的格式具有良好的支持。存在的CloudFormation的模板可以在OpenStack平台通过heat来启动。从架构来看,Heat有一些重要的组件,下图为各组件之间的关系图。
陕西省信息化工程研究院软件研发部第3页/ 共21页
2.1 Heat-engine
heat-engine是heat中的核心模块,主要的逻辑业务处理模块。此模块最终完成应用系统的创建和部署。整个heat的实现最为关键的代码在heat-engine,heat就是来操作stack,管理stack的整个生命周期: create,update,delete。
重点看create的过程,查看heat stack-create命令: 三个关键的optional arguments: template-file: 模板文件 environment-file: 环境文件
parameters: 设置模板文件中的parameters 2.2 Heat Client
Heat client是Heat project 提供的CLI工具,类似于其他项目的client。对于heat tools的使用,可以通过安装后查看。
陕西省信息化工程研究院软件研发部第4页/ 共21页
2.3 Heat-api
Heat-api 类似于nova-api,提供了原生的restful API对外使用。用户对API的调用,由heat-api处理之后,最终通过RPC传递给Heat-engine来进一步处理。 2.4 heat-api-cfn
heat-api-cfn组件则提供了Amazon style 的查询 API,因此可以完全兼容于 Amazon的CloudFormation,对于API的请求,同heat-api类似,处理之后,通过RPC传递给heat-engine进一步处理. 2.5 Heat-cfntools
这个工具是一个单独的工具,代码没在heat project里面,可以单独下载。这个工具主要用来完成虚拟机实例内部的操作配置任务。在创建虚拟机竟像时,需要在镜像中安装heat-cfntools工具。
3. Heat模板
Heat的目的之一就是致力于应用系统的自动化部署,那么若要自动化部署,则需要存在某个语言规范来描述应用系统,并且解决应用系统在不同场合下的配置适应问题。Heat模板文件则是用来对前者的支持。
模板文件的格式多种多样,例如,Amazon提供的cloudformation格式,Heat自有的格式HOT, Json等等,格式之间的差别在于表现形式。
template 中有三个formatversion,第一种是aws的格式,表示这是一个json 文件;第二种是heat为了扩展aws并且更好的加入注释,引入的 yaml格式文件;陕西省信息化工程研究院软件研发部第5页/ 共21页