作为OpenStack中的编排引擎,Heat能够出色的完成编排任务,井井有条地管理编排出来的资源。但同时,Heat也是一个出色的应用部署引擎,它提供了一套内置的框架去完成一系列复杂的应用部署任务。

使用Heat来部署应用的优势

Heat是OpenStack里面的原生服务,大部分的发行版都会提供这个服务,使用起来更方便。同时通过OS::Heat::SoftwareConfig和OS::Heat::SoftwareDeployment等多个资源类型的组合,可以轻易的实现一套应用部署流程。在虚拟机中的Agents会定时与Heat通信,发送脚本执行结果,方便Heat进行流程控制。有了这一套机制,Heat便拥有了对软件生命周期管理的能力。

使用SoftwareConfig的HOT模版

要通过heat来部署应用,至少三个资源会被使用到:

OS::Heat::SoftwareConfig 用于存储应用部署的执行脚本,每一个脚本都应该用一个SoftwareConfig来存储。其中group表示这是一个script脚本,将会被script模块执行。此外还支持ansible、chef、puppet、salt等脚本。config属性存放要执行的脚本内容,通常我们会通过get_file函数去获取一个脚本的内容。

OS::Heat::SoftwareDeployment 会把应用部署的脚本传输到vm里面并执行。

OS::Nova::Server里面需要把user_data_format属性设置成SOFTWARE_CONFIG,这样heat才能给虚拟机下发正确的配置文件。

软件部署机制的内部流程

1. Heat stack-create 触发部署流程,Heat分析并存储template中的数据,SoftwareConfig中的脚本会放到Heat数据库中。

2. Heat Engine去请求Nova创建相应的资源,并且在虚拟机的metadata中写入一些Heat的信息,包括Heat的API和认证信息。

3. Nova通知compute节点创建虚拟机。

4. 虚拟机第一次启动之后会调用Cloud-init,cloudinit与nova metadata service通信,获取metadata信息。

5. 然后通过不同的module去设置这些相应的配置,例如hostname,ssh等等。

6. 然后启动os-collect-config进程,它会读取/etc/os-collect-config.conf这个配置文件,里面由cloud-init配置了Heat的一些信息。读取完配置文件之后会与Heat API,以获取软件部署脚本。

7. 然后os-collect-config会调用os-refresh-config去对比新获取的脚本是否与之前的脚本不同。

8. 如果获取的脚本有更新,则调用os-apply-config去执行。

9. 执行结束之后通知heat脚本执行结果。

heat应用的更多相关文章

  1. openstack-kilo--issue(九) heat stacks topology中图形无法正常显示

    ======声明======= 欢迎转载:转载请注明出处 http://www.cnblogs.com/horizonli/p/6186581.html ==========环境=========== ...

  2. 网格测地线算法(Geodesics in Heat)附源码

    测地线又称为大地线,可以定义为空间曲面上两点的局部最短路径.测地线具有广泛的应用,例如在工业上测地线最短的性质就意味着最优最省,在航海和航空中,轮船和飞机的运行路线就是测地线.[Crane et al ...

  3. openStack Use Orchestration module(heat) create and manage cloud resources

  4. BZOJ 3408: [Usaco2009 Oct]Heat Wave 热浪( 最短路 )

    普通的最短路...dijkstra水过.. ------------------------------------------------------------------------------ ...

  5. 3408: [Usaco2009 Oct]Heat Wave 热浪

    3408: [Usaco2009 Oct]Heat Wave 热浪 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 67  Solved: 55[Subm ...

  6. [USACO09OCT]热浪Heat Wave

    未经同意,不得转载. The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make ...

  7. [最短路]P1339 [USACO09OCT]热浪Heat Wave

    题目描述 The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for g ...

  8. 【USACO09OCT】热浪Heat Wave

    题目描述 The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for g ...

  9. P1339 [USACO09OCT]热浪Heat Wave

    我太lj了,所以趁着夜色刷了道最短路的水题....然后,,我炸了. 题目描述: The good folks in Texas are having a heatwave this summer. T ...

  10. Screen Space Depth Varying Glow based on Heat Diffusion

    Inspired by "Interactive Depth of Field Using Simulated Diffusion on a GPU" with heat diff ...

随机推荐

  1. 20145238-荆玉茗 《Java程序设计》第3周学习总结

    20145238 <Java程序设计>第3周学习总结 教材学习内容总结 一.定义类: ·类定义时使用class关键字 ·如果要将x绑定到新建的对象上,可以使用"="制定 ...

  2. Spring boot 集成 Swagger

    添加依赖包 <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swa ...

  3. 第13章 GPIO-位带操作—零死角玩转STM32-F429系列

    第13章     GPIO—位带操作 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fire ...

  4. data-ng-hide指令用于隐藏或显示HTML元素

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  5. 前端JavaScript之BOM

    BOM:浏览器对象模型,操作浏览器部分功能的API.比如让浏览器自动滚动. 1.window对象 所有浏览器都支持 window 对象.概念上讲.一个html文档对应一个window对象.功能上讲: ...

  6. 2.Spring Cloud初相识--------Eureka服务注册与消费

    前言: 1.Eureka介绍: Spring Cloud Eureka,使用Netflix Eureka来实现服务注册与发现,它既包含了服务端组件,也包含了客户端组件,并且服务端与客户端均采用Java ...

  7. python读写dbf数据库

    dbf数据库作为一种简单的数据库,曾经广泛使用.现在在金融领域还是有很多的应用之处,工作中遇到此类的问题,在此记录一下. 1. 读取dbf ''' 读取DBF文件 ''' def readDbfFil ...

  8. 【PHP项目】form表单的enctype属性

    enctype这个属性管理的是表单的MIME(Multipurpose Internet Mail Extensions)编码,共有三个值可选: 1.application/x-www-form-ur ...

  9. 转-Spark编程指南

    Spark 编程指南 概述 Spark 依赖 初始化 Spark 使用 Shell 弹性分布式数据集 (RDDs) 并行集合 外部 Datasets(数据集) RDD 操作 基础 传递 Functio ...

  10. #Python编程从入门到实践#第二章笔记

      ​​​1.变量 (1)变量名只能包含字母.数字和下划线,不能包含空格 (2)不要将python关键字与函数名作为变量名 (3)简短有描述性,避免使用小写字母l和大写字母O (4)python 始终 ...