OpenStack Heat是该开源云平台中的编排组件。管理员可以使用Heat部署一个完整的、由任意数量的虚拟机和相关配置组成的云堆栈要使用OpenStack Heat部署堆栈,管理员需要以Heat Object Template格式创建模板。

OpenStack Heat模板以YAML编写,其中的所有内容都以YAML格式传递。这包括模板文件本身,以及需要在Heat Object Template(HOT)中处理的其他属性。管理员可以以包含所有必需参数的静态方式编写模板文件,但是对于在不断变化的环境(如OpenStack)中的堆栈部署来说,这种方法不够灵活。

 

带有环境文件的OpenStack Heat示例

要以更灵活的方式处理参数,管理员可以使用OpenStack Heat环境文件。然后,通过heat命令将HOT和环境文件一起处理。在模板本身中,管理员设置变量来引用特定参数,并且可以在HOT本身中(在下面清单1的示例中是这样)或者环境文件中定义这些参数。

 

 

在这个例子中,你可以看到变量是通过用大括号括起来而引用的:{get_resource:volume}。

这表示后面管理员在模板文件中定义的卷参数。资源一词是指特定的OpenStack组件,如管理员想要部署的计算实例和安全组。

 

清单1:HOT内容样本

 

heat_template_version: 2014-10-16

description: A simple server

resources:

server:

type: OS::Nova::Server

properties:

block_device_mapping:

- device_name: vda

delete_on_termination: true

volume_id: { get_resource: volume }

flavor: m1.nano

networks:

- network: internal001

user_data_format: RAW

user_data: |

#!/bin/sh

while [ 1 ]; do echo $((13**99)) 1>/dev/null 2>&1; done

volume:

type: OS::Cinder::Volume

properties:

image: ‘Cirros 0.3.4′

size: 1


当管理员在环境文件中定义和使用其他参数时,OpenStack Heat具有更大的灵活性,特别是在增加可扩展性的情况下。要部署带有HOT和环境文件的私有云堆栈,请运行heat命令,如heat stack-create -r -f my-template.yaml -e my-env.yaml my-stack。这里,-f选项指的是HOT,-e选项是指环境文件。

环境文件不是增加灵活性的唯一选择;管理员还可以使用带有-P key = value argument的heat命令来包含特定的参数。

 

编译:Jonathan Zhang

作者Uday Boppana

来源:http://searchcloudcomputing.techtarget.com/answer/Infuse-more-flexibility-into-OpenStack-Heat-templates

投稿邮箱:openstackcn@sina.cn