Openstack Heat — отдельные шаблоны

Я ищу лучший способ создания стека в несколько отдельных шагов.

Я хотел бы в первом шаблоне получить только вычислительные узлы и конфигурацию сети.

Во втором шаблоне я хотел бы создать узлы хранения и прикрепить их к уже существующим вычислительным узлам.

Как вы думаете, как лучше всего это сделать?


person InfiGuy    schedule 07.05.2016    source источник


Ответы (2)


Ниже приводится один из возможных подходов.

1) Определите первый шаблон для ваших вычислительных узлов и конфигурации сети. Но определите выходные данные в своем первом шаблоне, чтобы предоставить идентификаторы вычислительных узлов. Например, если вы создаете OS::Nova::Server с именем mynode1, вы можете указать его идентификатор в качестве выходных данных для этого шаблона следующим образом:

outputs:
  mynode1_id:
    description: ID of mynode1
    value: {getattr: [mynode1, id]}

После создания экземпляра теплового стека, скажем, mystack1, с этим первым шаблоном, вы можете получить доступ к идентификатору mynode1 следующим образом:

heat output-show mystack1 mynode1_id

2) Создайте свой второй шаблон для хранилища с идентификаторами ваших вычислительных узлов из шага 1 в качестве входных параметров. Например:

parameters:
  mynode1_id:
    type: string
    description: ID for mynode1

Затем вы можете использовать это в разделе «ресурсы:» следующим образом:

resources:
  ...
  ...
  my_volume_attach:
    type: OS::Cinder::VolumeAttachment
    properties:
      instance_uuid: {get_param: mynode1_id}
      ...

3) Запустите создание второго теплового стека следующим образом:

heat stack-create -f second-template.yaml -P mynode1_id=`heat output-show mystack1 mynode1_id` mystack2
person Praveen Yalagandula    schedule 09.05.2016

Вы также можете определить зависимости между вашими ресурсами, используя атрибут depends_on. Из вашего описания не похоже, что использование нескольких шаблонов является правильным решением.

например, если вы хотите, чтобы объекты 3,4 создавались после объектов 1,2, вы можете определить шаблон следующим образом:

heat_template_version: '2015-10-15'
parameters:
   param1:
        type: string
        description: just an example of parameter
resources:
 object1:
  type: OS::Neutron::XXX
  properties:
     property: XXX
  description: object1
 object2:
  type: OS::Neutron::XXX
  properties:
     property: XXX
  description: object2
 object3:
  type: OS::Nova::XXX
  properties:
     property: XXX
  description: object3
  depends_on: object1
 object4:
  type: OS::Nova::XXX
  properties:
     property: XXX
  description: object4
  depends_on: object1
person Matan Hugi    schedule 03.05.2017