首页 > 解决方案 > 输出 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}"

标签: terraform

解决方案


推荐阅读