zoukankan      html  css  js  c++  java
  • openstack heat 编排模板指南

    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

  • 相关阅读:
    Girls and Boys
    Kindergarten
    codevs 2822 爱在心中
    Popular Cows
    QWQ
    2488 绿豆蛙的归宿(拓扑+dp)
    P1119 灾后重建
    Mr. Frog’s Game
    Basic Data Structure
    A strange lift
  • 原文地址:https://www.cnblogs.com/yyuuee/p/14203487.html
Copyright © 2011-2022 走看看