我有null_resource
在某些服务器上运行remote-exec
配置程序,服务器通过IP列表引用。
对于每个服务器,我需要按以下格式生成字符串:
"server.1=<IP 1> server.2=<IP 2> server.3=<IP 3>"
这样每个服务器都可以引用其他服务器。
我当前的字符串插值是这样的:
resource "null_resource" "provision" {
count = <NUMBER OF SERVERS>
...
provisioner "remote-exec" {
inline = [
"echo ${formatlist("server.%d=%s", count.index, public_ips)}"
]
}
}
问题在于count.index
引用了NUMBER OF SERVERS
,所以每次formatlist
的运行都是常量,所以我的输出就像这样:
"server.1=<IP 1> server.1=<IP 2> server.1=<IP 3>"
"server.2=<IP 1> server.2=<IP 2> server.2=<IP 3>"
"server.3=<IP 1> server.3=<IP 2> server.3=<IP 3>"
如何正确生成此索引?
我想到了range
函数,我可以传递一个数字,它会生成一个从0到该数字的列表,但我在docs中看不到类似的内容。
修改 我忘记在原始问题中包含的一些信息:
我的public_ips
列表是一个简单的字符串列表,如
["IP 1", "IP 2", "IP 3"]
我正在使用Terraform v0.10.6