讀古今文學網 > OpenStack系統架構設計實戰 > 6.4.6 模板執行 >

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進行查詢。