heat应用
作为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应用的更多相关文章
- openstack-kilo--issue(九) heat stacks topology中图形无法正常显示
======声明======= 欢迎转载:转载请注明出处 http://www.cnblogs.com/horizonli/p/6186581.html ==========环境=========== ...
- 网格测地线算法(Geodesics in Heat)附源码
测地线又称为大地线,可以定义为空间曲面上两点的局部最短路径.测地线具有广泛的应用,例如在工业上测地线最短的性质就意味着最优最省,在航海和航空中,轮船和飞机的运行路线就是测地线.[Crane et al ...
- openStack Use Orchestration module(heat) create and manage cloud resources
- BZOJ 3408: [Usaco2009 Oct]Heat Wave 热浪( 最短路 )
普通的最短路...dijkstra水过.. ------------------------------------------------------------------------------ ...
- 3408: [Usaco2009 Oct]Heat Wave 热浪
3408: [Usaco2009 Oct]Heat Wave 热浪 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 67 Solved: 55[Subm ...
- [USACO09OCT]热浪Heat Wave
未经同意,不得转载. The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make ...
- [最短路]P1339 [USACO09OCT]热浪Heat Wave
题目描述 The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for g ...
- 【USACO09OCT】热浪Heat Wave
题目描述 The good folks in Texas are having a heatwave this summer. Their Texas Longhorn cows make for g ...
- P1339 [USACO09OCT]热浪Heat Wave
我太lj了,所以趁着夜色刷了道最短路的水题....然后,,我炸了. 题目描述: The good folks in Texas are having a heatwave this summer. T ...
- Screen Space Depth Varying Glow based on Heat Diffusion
Inspired by "Interactive Depth of Field Using Simulated Diffusion on a GPU" with heat diff ...
随机推荐
- 并查集,是否成树,Poj(1308)
思路: 对于每一条新的边的两个端点,是否是属于一颗树,要是的话,就不是一颗树.否则,就合并. 这里要注意的是,不能是森林,我这里WA了两次了.只不过在最后,查看每个节点的祖先是否是同一个就可以了. # ...
- v-for的深层用法
为了提升循环的性能,我们会给循环加上一个唯一的key值,这个key值一定是唯一的 <div id='root'> <div v-for='(item,index) of list' ...
- SVN知识集合
1. 如果某个项目之前保存了A仓库的信息,无法切换到B仓库(通过AnkhSVN或者VisualSVN),可以先在本地去除版本控制(用TortoiseSVN),然后导出B仓库信息(用TortoiseSV ...
- IntelliJ IDEA / Eclipse 自动生成 Author 注释 签名
Author 注释 签名如下: /*** @author 稚枭天卓 E-mail:zhxiaotianzhuo@163.com* @version 创建时间:2016-6-20 下午04:58:52* ...
- python selenium 模块的安装及使用
安装 pip install selenium 或者到https://pypi.python.org/pypi/selenium 下载setup安装包,之后进入目录后运行python setup.py ...
- substring和substr小结
substring 1 substring 方法用于提取字符串中介于两个指定下标之间的字符 2 substring(start,end) 开始和结束的位置,从零开始的索引 end:字符串下标,结束符是 ...
- Java中如何输入一个字符
今天在QQ群上看见有人问如何在Java中输入一个字符的问题. 查了下有以下三种方法吧: char c = new java.util.Scanner(System.in).next().charAt( ...
- 利用python在windows环境下爬取赶集网工作信息。
主要用到了多进程和多线程的知识,最后结果保存成csv文件格式,如有需要可改成数据库版本. 对用到的库做下简要介绍,具体请参考官方文档: xpinyin.Pinyin:将输入的中文转成拼音 concur ...
- ajax原生js及readystate/status
菜鸟教程 ←← GET: <script> function ajaxGet(){ var xmlhttp; if(window.XMLHttpRequest){ //TE7+ Fi ...
- php - empty() is_null() isset()的区别
empty():当变量存在,并且是一个非空非零的值时,返回 FALSE,否则返回 TRUE. is_null():如果指定变量为 NULL,则返回 TRUE,否则返回 FALSE. isset():如 ...