首页 » OpenStack系统架构设计实战 » OpenStack系统架构设计实战全文在线阅读

《OpenStack系统架构设计实战》6.4.6 模板执行

关灯直达底部

Heat模板可以通过两种途径执行,一种是通过Heat-tool命令执行,方式如下:

heat stack-create -f template.hts –P key:value stackname

其中,template.hts为完整模板内容,key:value部分为模板执行时需要注入的参数,stackname是模板提交执行后的实例命名。

另外一种是通过Heat-api提交执行,方式为采用POST方式向Heat-api的REST接口提交栈创建请求,具体消息如下:

{ "files": {}, "disable_rollback": true, "parameters": {"flavor": "m1.heat" }, "stack_name": "teststack", "template": {"heat_template_version": "2013-05-23","description": "Simple template to test heat commands","parameters": { "flavor": {"default": "m1.tiny","type": "string" }},"resources": { "hello_world": {"type": "OS::Nova::Server","properties": { "key_name": "heat_key", "flavor": {"get_param": "flavor" }, "image":"40be8d1a-3eb9-40de"} }} }, "timeout_mins": 60}

其中,模板的内容放入template属性内,parameters为模板需要注入的参数,disable_rollback标识为执行失败后是否回滚。

这两种方式在栈创建前,均要求通过Keystone进行统一权限验证。使用Heat-tool时通过本地环境变量中的相关参数,而调用Heat-api时,则通过消息头中的x-auth-token进行验证。

通过Heat的栈创建接口提交Heat模板内容即创建一个栈,但栈创建接口是异步的,即栈创建接口只返回栈成功进入待执行队列的信息,如需获取栈执行状态,则需要调用相应的Heat-api根据栈ID进行查询。