【发布时间】:2020-04-13 21:44:13
【问题描述】:
这与“Capture Terraform provisioner output?”不同。我有一个资源(在这种情况下为 null_resource),其中包含一个 count 和一个 local-exec 配置器,其中包含一些复杂的插值参数:
resource "null_resource" "complex-provisioning" {
count = "${var.count}"
triggers {
server_triggers = "${null_resource.api-setup.*.id[count.index]}"
db_triggers = "${var.db_id}"
}
provisioner "local-exec" {
command = <<EOF
${var.init_command}
do-lots-of-stuff --target=${aws_instance.api.*.private_ip[count.index]} --bastion=${aws_instance.bastion.public_ip} --db=${var.db_name}
EOF
}
}
我希望能够显示供应商所做的输出(这不是有效的 Terraform,只是我想要的模型):
output "provisioner_commands" {
value = {
api_commands = "${null_resource.complex-provisioning.*.provisioner.0.command}"
}
}
我的目标是获得一些输出,例如
provisioner_commands = {
api_commands = [
"do-lots-of-stuff --target=10.0.0.1 --bastion=77.2.4.34 --db=mydb.local",
"do-lots-of-stuff --target=10.0.0.2 --bastion=77.2.4.34 --db=mydb.local",
"do-lots-of-stuff --target=10.0.0.3 --bastion=77.2.4.34 --db=mydb.local",
]
}
我可以读取配置器配置并像这样输出吗?如果没有,是否有不同的方式来获得我想要的东西? (如果我不需要运行资源数组,我会在 local 变量中定义命令,并在配置器和输出中引用它。)
【问题讨论】:
-
我试过使用控制台。
null_resource.serverless_deploy.provisioner.*.command和null_resource.serverless_deploy.provisioner["local-exec"].command。也没有成功。
标签: terraform