多实例的heat模板
Posted heartshake
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多实例的heat模板相关的知识,希望对你有一定的参考价值。
一、heat编排
heat编排简单来讲,就是替代人工自动选择OpenStack自身基础架构资源,包括计算、网络和存储等资源。通过编排这些资源,用户可以得到最基本的VM。
二、heat模板
目前heat支持两种格式的模板,一种是基于JSON格式的CFN模板,另一种是基于YAML格式的HOT模板。
一个典型的HOT模板由下列元素构成
(1)模板版本
必填字段,指定所对应的模板版,Heat会根据版本检验。 如:
heat_template_version: 2013-05-23 #版本信息(heat template-version-list可查看所有模板版本)
description: Test Template
用heat template-show 命令来查询
(2)参数列表
选填,指输入参数列表。如
parameters: #自定义变量 Image: #变量① type: string #变量类型 description: Image use to boot a server #描述 Net: #变量② type: string description: Network for the server
(3)资源列表
必填,指生成的Stack让所包含的各种资源 。可以定义资源间的依赖关系,例如生成Port,然后再用Port来生成VM
resources: #描述的资源(如网络、实例、云硬盘等) server1: #资源名称 type: OS::Nova::Server #资源类型(为云主机)(heat resource-type-list可查看所有资源类型) properties: #云主机属性 name: "Test Heat server" #云主机名称 image: { get_param: Image } #镜像 flavor: "2" #云主机类型(cpu、内存、硬盘等) networks: #网络(可以有不止一个) - network: { get_param: Net }
(4)输出列表
选填,指生成的Stack暴露出来的信息,可以用来给用户使用,也可以用来作为输入提供给其他的Stack。
outputs: #返回值 server1_private_ip: #返回值名称 description: IP address of the server in the private network #描述 value: { get_attr: [ server1, first_address ] }
”get_param“作用:引用模板中指定的参数。如get_param: Image,引用parameters中Image的值。
“get_attr”作用:引用资源属性。如get_attr: [ server1, first_address ],引用server1资源中first_address的值。first_address必须是模板resouce段中指定的资源。
三、heat的多实例模板
实例的模板如下:
heat_template_version: 2015-10-15 description: Launch a basic instance with centos7.2 image using the ``m1.small`` flavor and one network. parameters: Net: type: string description: Network for the instance. resources: Server1: type: OS::Nova::Server properties: image: Centos6.5 flavor: m1.small networks: - network: { get_param: Net } Server2: type: OS::Nova::Server properties: image: Centos7.2 flavor: m1.small networks: - network: { get_param: Net } outputs: Server1_instance_name: description: Name of the instance. value: { get_attr: [ Server1, name ] } Server1_instance_ip: description: IP address of the instance. value: { get_attr: [ Server1, first_address ] } Server2_instance_name: description: Name of the instance. value: { get_attr: [ Server2, name ] } Server2_instance_ip: description: IP address of the instance. value: { get_attr: [ Server2, first_address ] }
以上是关于多实例的heat模板的主要内容,如果未能解决你的问题,请参考以下文章