输出 terraform 创建的基础设施信息

时间:2021-07-02 21:22:00

标签: terraform

我试图用 resource "local_file"、数据“template_file”和模板文件将创建的基础设施输出到一个文件中,要设置的液滴节点数在列表变量 devs = ["node1", "node2"]

locals {
  num_of_nodes = length(var.devs)
}

variable "devs" {
type = list
default = ["node1", "node2"]
}
data "template_file" "report" {
  count = local.num_of_nodes
  template = "${file("${path.module}/report.tpl")}"
  vars = {
    node_index = "${count.index}"
    node_name = digitalocean_droplet.web[count.index].name
    node_ip = digitalocean_droplet.web[count.index].ipv4_address
    node_password = random_string.password[count.index].result
  }
}

resource "local_file" "nodesconfig" {
  count = "${local.num_of_nodes}"
  content  = join("${element(data.template_file.report.*.rendered, count.index)}")
  filename = "${path.module}/report"
}

我认为 report.tpl 不正确,但不明白应该如何实现:

%{ for addr in node_index ~}
addr node_name node_ip node_password
%{ endfor ~}

当我运行 terraform plan 时,我知道它会创建两个 nodesconfig[0]nodesconfig[1],但是我希望它与 join 函数一起放在一个文件中

应该如何实现以获取带有下一个信息的 report?:

1: node1.zone.net "${node1_ip}" "${node1_password}" 2:node2.zone.net "${node2_ip}" "${node2_password}"

0 个答案:

没有答案