一个简单的heat模板,仅做自己参考

本文介绍三种Heat模板实例,包括带有参数的基本配置、自动伸缩组的设置及简单的资源定义。这些示例展示了如何使用Heat模板来创建虚拟机、指定网络配置、选择镜像等,并通过自动伸缩组实现资源的灵活调整。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、简单的带参数

 

description: 'Demo example'
heat_template_version: '2014-10-16'

parameters:
  flavor:
    type: string
    description: Flavor for the instances to be created
    default: m1.tiny
    constraints:
      - custom_constraint: nova.flavor
        description: Must be a flavor known to Nova
  image:
    type: string
    description: 
    constraints:
      - custom_constraint: glance.image
        description: Must identify an image known to Glance
    default: cirros-0.3.5-x86_64-disk
  network:
    type: string
    description: The network for the VM
    default: net_mgmt

outputs:
  mgmt_ip-VDU1:
    value:
      get_attr: [CP1, fixed_ips, 0, ip_address]

resources:
  CP1:
    properties: {network: { get_param: network }, port_security_enabled: false}
    type: OS::Neutron::Port
  VDU1:
    properties:
      availability_zone: nova
      config_drive: false
      flavor: { get_param: flavor }
      image: { get_param: image }
      networks:
      - port: {get_resource: CP1}
      user_data_format: SOFTWARE_CONFIG
    type: OS::Nova::Server

 

 

 

2、heat_template_version: 2014-10-16

 

heat_template_version: 2014-10-16

description: >
  This is a very simple template that illustrates the basic features
  of OS::Heat::AutoScalingGroup when the scaled resource is an
  OS::Nova::Server.  By virtue of its simplicity this example should
  be usable in many contexts.  In particular, this example does not
  require Neutron nor a load balancer nor any particular support for
  software in the VMs.  In fact, the VMs in this example do not
  actually do anything.  This example does no automatic scaling, but
  does discuss manual scaling.
  For a more complete example, see autoscaling.yaml.


parameters:
  key_name:
    type: string
    description: Name of an existing key pair to use for the instances
    constraints:
      - custom_constraint: nova.keypair
        description: Must name a public key (pair) known to Nova
  flavor:
    type: string
    description: Flavor for the instances to be created
    default: m1.small
    constraints:
      - custom_constraint: nova.flavor
        description: Must be a flavor known to Nova
  image:
    type: string
    description: >
      Name or ID of the image to use for the instances.
      You can get the default from
      http://cloud.fedoraproject.org/fedora-20.x86_64.qcow2
      There is also
      http://cloud.fedoraproject.org/fedora-20.i386.qcow2
      Any image should work since this template
      does not ask the VMs to do anything.
    constraints:
      - custom_constraint: glance.image
        description: Must identify an image known to Glance
  network:
    type: string
    description: The network for the VM
    default: private


resources:
  asg:
    type: OS::Heat::AutoScalingGroup
    properties:
      resource:
        type: OS::Nova::Server
        properties:
            key_name: { get_param: key_name }
            image: { get_param: image }
            flavor: { get_param: flavor }
            networks: [{network: {get_param: network} }]
      min_size: 1
      desired_capacity: 3
      max_size: 10


  scale_up_policy:
    type: OS::Heat::ScalingPolicy
    properties:
      adjustment_type: change_in_capacity
      auto_scaling_group_id: {get_resource: asg}
      cooldown: 60
      scaling_adjustment: 1


  scale_down_policy:
    type: OS::Heat::ScalingPolicy
    properties:
      adjustment_type: change_in_capacity
      auto_scaling_group_id: {get_resource: asg}
      cooldown: 60
      scaling_adjustment: '-1'


outputs:
  scale_up_url:
    description: >
      This URL is the webhook to scale up the group.  You can invoke
      the scale-up operation by doing an HTTP POST to this URL; no
      body nor extra headers are needed.
    value: {get_attr: [scale_up_policy, alarm_url]}
  scale_dn_url:
    description: >
      This URL is the webhook to scale down the group.  You can invoke
      the scale-down operation by doing an HTTP POST to this URL; no
      body nor extra headers are needed.
    value: {get_attr: [scale_down_policy, alarm_url]}
  asg_size:
    description: >
      This is the current size of the auto scaling group.
    value: {get_attr: [asg, current_size]}
  server_list:
    description: >
      This is a list of server names that are part of the group.
    value: {get_attr: [asg, outputs_list, name]}
  networks:
    description: >
      This is a map of server resources and their networks.
    value: {get_attr: [asg, outputs, networks]}
  server_ips:
    description: >
      This is a list of first ip addresses of the servers in the group
      for a specified network.
    value: {get_attr: [asg, outputs_list, networks, {get_param: network}, 0]}

 

3、heat_template_version: '2013-05-23'

 

description: 'Demo example'
heat_template_version: '2013-05-23'
outputs:
  mgmt_ip-VDU1:
    value:
      get_attr: [CP1, fixed_ips, 0, ip_address]
parameters: {}
resources:
  CP1:
    properties: {network: net_mgmt, port_security_enabled: false}
    type: OS::Neutron::Port
  VDU1:
    properties:
      availability_zone: nova
      config_drive: false
      flavor: m1.tiny
      image: cirros-0.3.5-x86_64-disk
      networks:
      - port: {get_resource: CP1}
      user_data_format: SOFTWARE_CONFIG
    type: OS::Nova::Server

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值