在`formatlist`期间获取索引值

时间:2017-09-20 22:50:03

标签: terraform

我有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

1 个答案:

答案 0 :(得分:0)