从热模板创建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}