OpenStack Heat获得ResourceGroup IP地址并设置为params

时间:2019-06-18 02:16:47

标签: openstack-heat

从热模板创建1个主实例节点和2个小实例。

我要将minion_group的所有实例ip地址写入主实例ip.txt文件。

从{get_attr:[minion_group,first_address]}

获取小兵组的ip地址。

但是这种类型的返回不是字符串。

因此它不能使用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} 

0 个答案:

没有答案