部署编排 (Orchestration):Heat。提供了一种通过模板定义的协同部署方式,实现云基础设施软件运行环境(计算、存储和网络资源)的自动化部署。自Havana版本集成到项目中。
Heat是OpenStack的负责编排计划的主要项目。它可以基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性。目前Heat自身的模板格式(HOT)正在不停的改进,同时也支持AWS CloudFormation 模板(CFN),HOT的目标是在不远的将来可以完全的替代CFN。
Heat提供了一个OpenStack的原生REST API和CloudFormation兼容的查询API。
Heat的工作原理
Heat主要是基于模板文件对应用进行管理,在模板文件中可以定义应用需要的资源,资源可以包括多种类型(CFN以及HOT支持的资源类型可能会存在一定的差别)例如IP,网络,镜像,用户,实例等。定义资源的同时也可以指定资源之间的依赖关系,例如使用云硬盘创建创建一个实例时,可以指定在创建实例时必须要创建云硬盘。
编辑完模板文件后,可以使用该模板文件创建Stack,创建的过程中Heat引擎会根据模板文件中定义的资源,调用对应的资源插件创建资源。创建完Stack之后,Heat可以管理Stack中所有资源的生命周期,例如可以删除资源,也可以通过更新模板的方式来更新Stack中资源的定义。
安装步骤
- 库名: heat
- 账户: heat
- 密码: heat4smtest
1、安装软件包
sudo apt-get install heat-api heat-api-cfn heat-engine
2、修改heat配置文件
sudo vi /etc/heat/heat.conf
[database]
# The SQLAlchemy connection string used to connect to the database
connection = mysql://heat:heat4smtest@192.168.3.180/heat
3、sudo rm /var/lib/heat/heat.sqlite
4、创建数据库、账户并配置权限
sudo mysql -uroot -p#db4smtest# -e 'CREATE DATABASE heat;'
sudo mysql -uroot -p#db4smtest# -e 'CREATE USER heat;'
sudo mysql -uroot -p#db4smtest# -e "GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'localhost' IDENTIFIED BY 'heat4smtest';"
sudo mysql -uroot -p#db4smtest# -e "GRANT ALL PRIVILEGES ON heat.* TO 'heat'@'%' IDENTIFIED BY 'heat4smtest';"
sudo mysql -uroot -p#db4smtest# -e "SET PASSWORD FOR 'heat'@'%' = PASSWORD('heat4smtest');"
5、创建heat数据表