Отдельный тепловой шаблон для томов и экземпляров

Мы хотим создать тепловые шаблоны с серверами и томами, прикрепленными к этим серверам. Но мы также хотим иметь возможность быстро уничтожать все серверы, не уничтожая тома.

Поэтому мы решили, что будет лучше сделать 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] }

Но вывод не дал нам ничего похожего на идентификатор тома. Мы застряли прямо сейчас.

Есть идеи ?


person zechocapic    schedule 14.06.2018    source источник


Ответы (1)


Тепло 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

person Community    schedule 15.06.2018