Heat组件是openstack的孵化组件之一,有时也称为Orchestration Service。它的主要功能是自动化部署应用,自动化管理应用的整个生命周期。对于云计算来说,自动化管理是一个必不可少的部分,heat就是这部分功能的实现。AWS的EC2是通过提供CloudFormation格式的模板来实现Orchestration。Heat不仅100%兼容CloudFormation格式,同时支持自己的Hot(heat orchestration template)格式。
Heat可以看作是解决客户PaaS层的需求。Openstack作为云平台是需要让应用程序能够部署和运行的,heat提供了框架来解决这一问题。从下图可以看出,利用包含heat的openstack就可以完整的实现一个从IaaS到PaaS,从云基础设施硬件环境到云应用的软件运行环境的整体的部署和运行。可以说有了heat,openstack就是一个完整的应用了。对于heat的功能和实现,简单来说就是用户预先定义一个规定格式的任务模板,任务模板中定义了一连串的相关任务(例如用某配置开几台虚拟机,然后再其中一台安装一个mysql服务,设定相关的数据库属性,然后再配置几台虚拟机安装web服务集群等等),然后将模板交由heat执行,heat就会按一定得顺序执行heat模板中定义的一连串任务。
Heat作为相对独立的模块建立在其它模块之上。Havana版中主要与heat交互的模块是nova和ceilometer。
本文先讲一下heat的安装和配置。这里主要讲的是在redhat环境中利用packstack进行heat的安装和配置。在suse环境的安装欢迎大家补充。因为heatz在Havana版本中已经是正式的模块了。所以,一条命令就能搞定。
packstack--install-hosts=x.x.x.x,x.x.x.x--os-heat-install=y
如果是在Grizzly版上装就只能手动安装了。
gitclone git://github.com/openstack/heat.git
cd heat; gitcheckout remotes/origin/stable/grizzly
git checkout–b grizzly
yum install -y libxslt-develpython-devel gcc python-pip
pythonsetup.py install
./install.sh
yum install -ypython-paste-deploy.noarch python-routes.noarch
source/root/keystonerc_admin
打开heat/bin/heat-keystone-setup,修改201行:
SERVICE_TENANT=$(get_data 2 service 1keystone tenant-list)
to:
SERVICE_TENANT=$(get_data 2 services 1keystone tenant-list)
执行heat/bin/heat-keystone-setup,创建heat用户
'catpackstack-answers-20130912-124830.txt |grep MYSQL'. 拿到mysql的密码,这个用来创建heat的数据库.
CONFIG_MYSQL_PW=4ad9837a8e5e473a
heat/bin/heat-db-setup rpm. 脚本会让你输入密码,在这个例子里面密码就是 '4ad9837a8e5e473a'.
1
|
`cat keystonerc_admin |grep OS_PASSWORD`, 修改/etc/heat/heat-api-paste.ini:
|