openstack heat 编排模板指南

标签:ack   取值   puts   x86_64   number   uppercase   定义   image   configure   

opentack heat orchestration template (HOT) 可以类比 k8s 的 yaml 文件,k8s 通过 yaml 文件实现编排, 通过 HOT yaml 文件实现 openstack 上的编排

openstack 版本

train 版

HOT hello world
技术图片

有效的 HOT 版本参考:Heat template version

resources 段是必须的,并且至少包含一个资源定义,上面就是定义了一个名为my_instance的资源

上面的例子会创建一个镜像为 F18-x86_64-cfntools, 大小为 m1.small, ssh key 指定为 my_key 的一个云主机

通常为了使模板更通用,会使用变量,而不是像上面的例子那样硬编码。
技术图片
定了三个变量,并且my_instance里面使用变量,而不是硬编码, 并且变量可以指定默认值,这些变量通过 horizon 页面或者 openstack 命令行传进来

变量除了设置默认值,还可以设置 hidden 属性,这样用户在 heat stack 页面看不到该属性的值,通常用来保护一些私密信息。
parameters:
database_password:
type: string
label: Database Password
description: Password to be used for database
hidden: true
allowed_values 和 allowed_pattern 属性可以限制一个变量的取值
parameters:
instance_type:
type: string
label: Instance Type
description: Type of instance (flavor) to be used
constraints:
- allowed_values: [ m1.medium, m1.large, m1.xlarge ]
description: Value must be one of m1.medium, m1.large or m1.xlarge.
database_password:
type: string
label: Database Password
description: Password to be used for database
hidden: true
constraints:
- length: { min: 6, max: 8 }
description: Password length must be between 6 and 8 characters.
- allowed_pattern: "[a-zA-Z0-9]+"
description: Password must consist of characters and numbers only.
- allowed_pattern: "[A-Z]+[a-zA-Z0-9]*"
description: Password must start with an uppercase character.
除了自定义用户的输入参数外,还可以配置输出变量:
outputs:
instance_ip:
description: The IP address of the deployed instance
value: { get_attr: [my_instance, first_address] }

HOT 指南

模板结构

技术图片
**heat_template_version **: 必须,指定模板语法的版本,除了可以指定日期的格式,还可以直接指定 openstack 的版本, 如 rocky
description : 可选,描述信息
parameter_groups : 可选,指明输入参数该如何分组以及参数传入的顺序
**parameters : **可选, 定义输入参数
resources : 必须,定义模板资源
**outputs : **可选,定义输出参数
conditions : 可选,用来控制一个资源什么情况下可以被创建,或者资源某一属性什么情况下可以被定义。

Parameter groups section
parameter_groups:

  • label:


    description:


    parameters:


Parameters section
parameters:

: type:

label:

description:

default:

hidden:
constraints: immutable:
tags:

type 示例 :
技术图片
定义一个输入参数,至少包含 type
parameters:
user_name:
type: string
label: User Name
description: User name to be configured for the application
port_number:
type: number
label: Port Number
description: Port number to be configured for the web server

label 和 description 是可选的,但是一般为了更好的描述都加上了这两个属性

内置的参数
技术图片
这三个参数都可以通过 get_param 参数获取:
Resources section




openstack heat 编排模板指南

标签:ack   取值   puts   x86_64   number   uppercase   定义   image   configure   

原文地址:https://www.cnblogs.com/yyuuee/p/14203487.html

版权声明:完美者 发表于 2021-01-02 10:37:17。
转载请注明:openstack heat 编排模板指南 | 完美导航

暂无评论

暂无评论...