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

在这个例子中,你可以看到变量是通过用大括号括起来而引用的:{get_resource:volume}。
这表示后面管理员在模板文
OpenStack Heat模板以YAML编写,其中的所有内容都以YAML格式传递。这包括模板文件本身,以及需要在件中定义的卷参数。资源一词是指特定的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命令来包含特定的参数。