OpenStack中的Heat进阶

本文深入探讨了OpenStack中的Heat平台,它是用于自动化配置云环境的工具,与Amazon的CloudFormation类似。Heat支持模板,目前兼容CloudFormation,但也在发展自有的HOT模板。文章详细介绍了模板的字段、函数引用、资源属性、环境、堆栈管理和应用部署,包括cfn-init、cfn-signal等工具。此外,还讨论了Heat与AutoScaling、CloudWatch的集成,以及与OVF的区别。
摘要由CSDN通过智能技术生成

OpenStack中的Heat分析

声明:
本博客欢迎转发,但请保留原作者信息!
博客地址:http://lingxiankong.github.io/
内容系本人及本人团队学习、研究和总结,如有雷同,实属荣幸!
Author:华为云计算工程师 孔令贤
Date: 2013-12-02

版本:2013.2

Heat是一套业务流程平台,旨在帮助用户更轻松地配置以OpenStack为基础的云体系。利用Heat应用程序,开发人员能够在程序中使用模板以实现资源的自动化部署。Heat能够启动应用、创建虚拟机并自动处理整个流程。它还拥有出色的跨平台兼容性,能够与Amazon Web Services业务流程平台CloudFormation相对接——这意味着用户完全可以将AWS模板引入OpenStack环境当中。

所以,在分析Heat的时候,不可避免的要与AWS的CloudFormation作对比。

关于template,可以参考Amazon的文档,毕竟heat源于CloudFormation。 其实把Amazon CloudFormation的文档仔细读一遍,基本就能玩转Heat了。

需要说的就一点,虽然heat目前兼容CloudFormation,但openstack社区已经在慢慢支持自研的模板结构,叫HOT(heat orchestration template,本文暂不关注),所以目前有两种template解释器,依据模板文件开头是否是heat_template_version字段识别。

目前CloudFormation Template中,Heat仅支持如下的字段:
'AWSTemplateFormatVersion', 'Description', 'Mappings', 'Parameters', 'Resources', 'Outputs'
而CloudFormation中的'Conditions'字段目前还不支持。

在CloudFormation中,支持如下的函数:
Fn::Base64Fn::FindInMapFn::GetAttFn::GetAZsFn::JoinFn::SelectRef,目前Heat都支持。因为尚不支持Conditions字段,所以也不支持Fn::And, Fn::Equals, Fn::If, Fn::Not, Fn::Or,这些条件判断函数。

定义资源时,可以定义DeletionPolicy属性,表示在删除stack时,资源的删除策略,默认是Delete。在CloudFormation中,可以指定Retain,表示不删除该资源,对于有快照功能的资源(比如AWS::EC2::Volume),也可以指定Snapshot,表示在删除前先做快照。

显式的定义资源的依赖关系。在资源定义时已经有一些函数(比如RefFn::GetAtt)可以判定依赖关系,但除了这些,可能还需要手工指定依赖。一个典型的用法就是配合AWS::CloudFormation::WaitCondition(关于WaitCondition一个使用示例可以参见这里),它的作用是暂停stack的创建,等待某个信号,然后再恢复执行。比如在虚拟机创建完后,需要等待应用的下载和配置结束,然后才能真正认为该虚拟机创建完毕。一个例子:

 
 
 
  1. "myWaitCondition" : {
  2. "Type" : "AWS::CloudFormation::WaitCondition",
  3. "DependsOn" :
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值