Heat的安裝,配置以及核心概念python
Heat做爲相對獨立的模塊創建在其餘模塊之上。Havana版中主要與Heat交互的模塊是Nova和Ceilometer。下一版本Ice House還會有Swift,Glance, Neutron。mysql
安裝和配置篇linux
推薦的安裝方式是用Redhat的packstack或Ubuntu的Juju直接安裝,因爲Heat在Havana 版本已經是正式的模塊了。我主要用的是Redhat RDO,因此一條命令就能搞定。git
packstack--install-hosts=x.x.x.x,x.x.x.x--os-heat-install=ygithub
gitclone git://github.com/openstack/heat.gitsql
cd heat; gitcheckout remotes/origin/stable/grizzlyapi
git checkout–b grizzlybash
yum install -y libxslt-develpython-devel gcc python-pip網絡
pythonsetup.py installssh
./install.sh
配置Heat
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'.
Installing on an RPM system. Please enter the password for the 'root' MySQL user: Verified connectivity to MySQL. Creating 'heat' database. /usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/pool.py:683:SADeprecationWarning: The 'listeners' argument to Pool (and create_engine()) isdeprecated. Use event.listen(). Pool._init_(self,creator, **kw) /usr/lib64/python2.6/site-packages/SQLAlchemy-0.7.8-py2.6-linux-x86_64.egg/sqlalchemy/pool.py:159:SADeprecationWarning: Pool.add_listener is deprecated. Use event.listen() self.add_listener(l)
7.
`cat keystonerc_admin |grep OS_PASSWORD`, 修改/etc/heat/heat-api-paste.ini:
admin_tenant_name= services <-- orignial it is 'service'
admin_password =7d1642ae2c1c4aff
8. 修改/etc/heat/heat-api-cfn-paste.ini,/etc/heat/heat-api-cloudwatch-paste.ini裏的admin_tenant_name and admin_password.
9. 把heat-engine.conf中的heat_metadata_server_url,heat_waitcondition_server_url, heat_watch_server_url從127.0.0.1改爲你機器的外網ip
10. yum install -y python-heatclient
11. 啓動Heat:
heat-api &
heat-engine &
heat-api-cfn &
heat-cloud-watch &
啓動第一個stack
Stack這個概念來源於AWS,Stack管理的是resource。而resource是個抽象的概念,它能夠是虛擬機,能夠是網絡等等。Stack就是Heat管理應用程序的邏輯單元。
1. 從http://fedorapeople.org/groups/heat/prebuilt-jeos-p_w_picpaths/中下載F17-x86_64-cfntools.qcow2, 而後用glance把它導入:
glancep_w_picpath-create --name=F17-x86_64-cfntools --disk-format=qcow2--container-format=bare < /var/lib/libvirt/p_w_picpaths/F17-x86_64-cfntools.qcow2
2. 經過Horizon或者命令行註冊一個SSH key-pair,下面的例子生成root_key
novakeypair-add --pub_key ~/.ssh/id_rsa.pub root_key
3. git clone https://github.com/openstack/heat-templates.git', 從這裏能夠下載不少heat的參考模版
4. 建立名爲demo的Stack
heatstack-create demo --template-file=/root/heat-templates/cfn/F17/getting_started.template --parameters="KeyName=root_key"
5. 觀察stack啓動的狀態
# heat list +--------------------------------------+------------+-----------------+----------------------+ | id | stack_name | stack_status | creation_time | +--------------------------------------+------------+-----------------+----------------------+ | 543b64c7-3165-4939-a249-ba68d8cb54b0 | demo | CREATE_COMPLETE | 2013-10-21T10:03:06Z | +--------------------------------------+------------+-----------------+----------------------+
heat resource-list 543b64c7-3165-4939-a249-ba68d8cb54b0 +---------------------+---------------------------------------+-----------------+----------------------+ | logical_resource_id | resource_type | resource_status | updated_time | +---------------------+---------------------------------------+-----------------+----------------------+ | JsmLaunchConfig | AWS::AutoScaling::LaunchConfiguration | CREATE_COMPLETE | 2013-10-21T10:03:06Z | | CfnUser | AWS::IAM::User | CREATE_COMPLETE | 2013-10-21T10:03:07Z | | VcsKeys | AWS::IAM::AccessKey | CREATE_COMPLETE | 2013-10-21T10:03:17Z | | CPUAlarmHigh | AWS::CloudWatch::Alarm | CREATE_COMPLETE | 2013-10-21T10:03:35Z | | CPUAlarmLow | AWS::CloudWatch::Alarm | CREATE_COMPLETE | 2013-10-21T10:03:35Z | | JsmScaleUpPolicy | AWS::AutoScaling::ScalingPolicy | CREATE_COMPLETE | 2013-10-21T11:13:20Z | | VM | AWS::AutoScaling::AutoScalingGroup | CREATE_COMPLETE | 2013-10-21T11:18:55Z | | JsmScaleDownPolicy | AWS::AutoScaling::ScalingPolicy | CREATE_COMPLETE | 2013-10-28T12:52:40Z | +---------------------+---------------------------------------+-----------------+----------------------+