terraform更改remote-exec的计数索引行为

时间:2019-03-06 13:49:59

标签: interpolation terraform

尝试使用实例的主机名和专用IP修改/ etc / hosts。例如,“ / etc / hosts”文件应如下所示。

CreateNoWindow

以下我从stackoverflow本身发现的代码将接近完成上述操作,但是我很难理解要在哪里将索引增加1(count.index + 1),以便获得提及的输出而不是member-1成为member-0,member-2成为member-1。

member-1 <some private ip>
member-2 <some private ip>

请新手能获得帮助吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

当我用count做过类似的事情时,我很确定自己做过这样的事情:

resource "null_resource" "my_resource" {
  count = "${var.cluster_count}"

  name = "cluster-node-${count.index+1}"
}

因此,在您的示例中,您会想在提及$ {var.cluster_member_name_prefix}后添加$ {count.index + 1}。

但是,就像@ matt-schuchard提到的那样,也许模板化是一种更好的方法,因为我认为您当前的实现不太可读。

您应该能够将变量传递到模板中(例如,您需要的成员数),然后将该变量与循环一起使用以生成所需的正确文件配置。

模板对于这类事情非常方便。

此外,如果要在服务器上运行大量命令(用于安装等),则可能更适合使用Ansible之类的工具来代替terraform中的remote_exec命令。

某些链接可能会有所帮助:

https://www.terraform.io/docs/providers/template/index.html https://www.terraform.io/docs/configuration/expressions.html#string-templates