从 heat 模板创建 1 个主实例节点和 2 个从属实例。
我想将 minion_group 所有实例 ip 地址写入主实例 ip.txt 文件。
minion 组 ip 地址来自 {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}