前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >不只是编排引擎,OpenStack Heat之应用部署实践

不只是编排引擎,OpenStack Heat之应用部署实践

作者头像
静一
发布2018-03-26 16:12:38
1.4K0
发布2018-03-26 16:12:38
举报
文章被收录于专栏:云计算D1net云计算D1net

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

使用Heat来部署应用的优势

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

当然这一套框架也有一些需要克服的不足:

  • 需要在image内安装一些Heat的Agents与Heat API通信,有些客户可能并不太愿意在虚拟机内安装Agents。
  • 相对于成熟的软件自动化部署工具,Heat还是很稚嫩,但Heat并不是要成为它们,而是更好地与它们结合工作。

构建包含os-*-config agents的镜像

刚才说要使用heat的这套框架,需要先创建出一个包含了os–config agents的镜像。通常我们使用diskimage-builder这个工具,下面的例子是创建出一个带os–config agents的Fedora镜像:

使用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脚本执行结果。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-07-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云计算D1net 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用Heat来部署应用的优势
  • 构建包含os-*-config agents的镜像
  • 使用SoftwareConfig的HOT模版
  • 软件部署机制的内部流程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档