我们想创建一个带有服务器和连接到这些服务器的卷的热模板。但我们也希望能够在不破坏卷的情况下快速销毁所有服务器。
所以我们决定最好制作 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 的东西。我们现在被困住了。
任何想法 ?