我试图用 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}"