OpenStack heat получает IP-адрес ResourceGroup и устанавливает для него параметры - PullRequest
0 голосов
/ 18 июня 2019

Создание 1 главного узла экземпляра и 2 экземпляров миньонов из теплового шаблона.

Я хочу записать ip-адреса всех экземпляров minion_group в файл ip.txt главного экземпляра.

ip-адреса группы миньоновget from {get_attr: [minion_group, first_address]}

но этот тип возврата не был строкой.

Так что он не может использовать str_replace.

У кого-нибудь есть идеи?

Вот мой шаблон о разделе ресурсов:

resources:
  master:
    type: OS::Nova::Server
    depends_on: minion_group
    properties:
      flavor: {get_param: master_flavor}
      image: {get_param: image}
      key_name: {get_param: key}
      networks: 
        - port: {get_param: network}
      user_data_format: SOFTWARE_CONFIG      

  minion_group:
    type: OS::Heat::ResourceGroup
    properties:
      count: 2
      resource_def:
        type: OS::Nova::Server
        properties:
         name: 
           list_join:
             - '-'
             - [{ get_param: 'OS::stack_name' }, 'minion', '%index%']
         flavor: {get_param: minion_flavor}
         image: {get_param: image}
         key_name: {get_param: key}
         networks:
           - network: {get_param: network}

 get_ip:
    type: OS::Heat::SoftwareConfig
    properties:
      group: script
      config: 
        str_replace:
          template: |
            #!/bin/bash
            echo ${minion_group_ip} > /opt/ip.txt
          params:
            $minion_group_ip: {get_attr: [minion_group, first_address] }

 deployment:
    type: OS::Heat::SoftwareDeployment
    properties:
      signal_transport: HEAT_SIGNAL
      config: {get_resource: get_ip}
      server: {get_resource: master} 
...