1

我们想创建一个带有服务器和连接到这些服务器的卷的热模板。但我们也希望能够在不破坏卷的情况下快速销毁所有服务器。

所以我们决定最好制作 2 个 heat 模板而不是 1 个: - 一个用于卷 - 一个用于服务器和卷附件

我们想要这样的东西:

stack-for-volume.yml

description: project

heat_template_version: '2015-10-15'

resources:

        volume-choca-01:
                type: OS::Cinder::Volume
                properties:
                        name: volume-choca-01
                        size: 15

stack-for-servers-and-attachments.yml

description: project

heat_template_version: '2015-10-15'

resources:

        vm-choca-01:
                type: OS::Nova::Server
                properties:
                        flavor: CO.2
                        image: Centos 7
                        key_name: choca
                        name: vm-choca-01
                        networks:
                        - {network: net-ext}
                        security_groups: [default]

        volume-attachment-01:
                type: OS::Cinder::VolumeAttachment
                properties:
                        instance_uuid: { get_resource: vm-choca-01 }
                        volume_id: { get_resource: volume-choca-01 }

当然,因为所有资源都不在同一个文件中: volume_id: { get_resource: volume-choca-01 }不能工作。

我们尝试使用此处发布的解决方案获取 volume_id:Openstack Heat - 通过在末尾添加 stack-for-volume.yml 来分离模板:

outputs:
        volume-choca-01-id:
                description: something
                value: { get_attr: [volume-choca-01] }

但是输出并没有给我们任何看起来像卷 ID 的东西。我们现在被困住了。

任何想法 ?

4

1 回答 1

0

OpenStack 热度

当使用模板/嵌套模板中定义的资源创建堆栈时,当用户删除堆栈时,所有资源都将终止/删除

因此,根据您的要求/问题,您可以这样尝试:

第 1 步:使用热模板创建体积

第 2 步:从仪表板/地平线获取卷 UUID 并分配到volume_id资源中,OS::Cinder::VolumeAttachment例如:

         volume-attachment-01:
            type: OS::Cinder::VolumeAttachment
            properties:
                    instance_uuid: { get_resource: vm-choca-01 }
                    volume_id: { get_param: volume-choca-01_UUID }

并在参数中定义volume-choca-01_UUID参数:

 parameters:
   volume-choca-01_UUID:
      type: string
      default: <UUID of volume from dashboard>

通过上述过程,创建了服务器并将卷附加到它。当您删除堆栈时,卷被分离而不是getting deleted with server

于 2018-06-15T06:38:09.547 回答