多实例的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模板的主要内容,如果未能解决你的问题,请参考以下文章

heat模板

如何包含由 Heat 创建的 Wix Fragments

题解 P1339 [USACO09OCT]热浪Heat Wave

Heat 入门指导

Heat入门第一步

Wix Heat 输出没有像我想要的那样引用目录