尝试使用 terraform local-exec 将 ip 打印到文件时出错

Error when trying to print ip to a file using terraform local-exec

我正在尝试将新创建的实例的私有 ip 打印到我 运行 terraform 来自的本地主机文件中,以将其用于 ansible,但是 terraform 抛出错误,每次我修改我的local-exec echo 命令中的转义字符。

这是我遇到错误的片段:

 provisioner "local-exec"
{
command = " echo \"[servers]\["${aws_instance.seeds.*.private_ip}"\]\" >> /ec2-ansible/hosts"
}

主机文件中的预期输出:

[servers]
ip1
ip2
ip3

我遇到的错误:

Failed to load root config module: Error parsing /root/ec2-ansible/main.tf: At 33:1: expected: IDENT | STRING | ASSIGN | LBRACE got: RBRACE
Failed to load root config module: Error parsing /root/ec2-ansible/main.tf: At 29:25: illegal char

请帮帮我。

我认为您同时使用 terraform 和 ansible 的方向是错误的。

在ansible中,您可以使用Dynamic Inventory从它们的标签、大小、ami id等轻松获取主机信息,例如私有IP

在 terraform 中,如果您需要状态详细信息并提供给 ansible,建议使用 terraform output 来收集信息。