heat-api (Openstack中的CloudFormation) cfntools笔记

声明:

本博客欢迎转发,但请保留原作者信息!内容系本人学习、研究和总结,如有雷同,实属荣幸!

原文地址:http://blog.csdn.net/gtt116/



在heat-api架构中,虚拟机外部需要和虚拟机进行通行,和对虚拟机进行详细自定义。具体架构以后再写。

今天着重介绍cfntools里面几个脚本的作用。(https://github.com/heat-api/heat-jeos)


cfntools介绍

cfntools是在虚拟机中跑的一堆辅助脚本,一般用来获取metadata,并根据metadata做一些自动化配置。


cfntools目录结构

├── cfn-get-metadata
├── cfn_helper.py
├── cfn-hup
├── cfn-init
├── cfn-push-stats
├── cfn-signal
├── __init__.py

其中cfn_helper包含了主要的实现的代码,其他几个脚本只是依赖于此。


cfn-init 

做一些虚拟机的初始化工作,例如读取metadata中 AWS::CloudFormation::Init的配置,然后做一些动作,如安装包,启动服务等。参看:http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/aws-resource-init.html#aws-resource-init-services


cfn-get-metadata

获取metadata,并保存到/tmp/last_metadata目录中。其实这部分工作cfn-init已经做过了。


cfn-push-stats

调用psutil获取虚拟机内部信息(cpu,内存使用量),并将这些信息发送到metadata服务器上。


cfn-signal

同样是往metadata服务器上发送数据,只是他发送的是cfntool的操作是否完成,是否出错等信息。

例如,一般情况下,在cfn的模板(template)中的虚拟机user-data都会写上:

cfn-signal -e 0 -r \"Wiki server setup complete\" 

-e --exit code

-r --reson



cfn-hup

这玩意比较复杂,它是一个daemon进程,监视metadata,并且根据更新后的metadata作出相应的动作。主要用法可以用来更新配置文件,例如haproxy的配置



你可能感兴趣的:(虚拟机,server,脚本,服务器,化工)