声明:
本博客欢迎转发,但请保留原作者信息!内容系本人学习、研究和总结,如有雷同,实属荣幸!
原文地址: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包含了主要的实现的代码,其他几个脚本只是依赖于此。
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的配置