Мы хотим создать тепловые шаблоны с серверами и томами, прикрепленными к этим серверам. Но мы также хотим иметь возможность быстро уничтожать все серверы, не уничтожая тома.
Поэтому мы решили, что будет лучше сделать 2 шаблона Heat вместо одного: - один для томов - один для серверов и вложений томов
Мы хотели бы что-то вроде этого:
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 — отдельные шаблоны, добавив в конечный стек-for-volume.yml :
outputs:
volume-choca-01-id:
description: something
value: { get_attr: [volume-choca-01] }
Но вывод не дал нам ничего похожего на идентификатор тома. Мы застряли прямо сейчас.
Есть идеи ?