我正在尝试配置文件" ../ ansible-provision / test"使用Terraform列表中存储的IP列表:aws_instance.masters.*.private_ip
我只是尝试使用" echo"它的工作原理,如下一个例子所示:
command = "echo \"${join(" ", aws_instance.masters.*.private_ip)}\" >> ../ansible-provision/test"
在前面的例子中," echo"将aws_instance.masters
的IP写入以逗号分隔的文件../ansible-provision/test
。
我想使用sed
而不是echo
来做同样的事情。
我想使用sed
的原因是因为我可以在特定的行中写出这些IP。
我尝试使用下一个sed命令,但它只写入第一个IP,所以我需要加入该对象的所有IP,就像我在echo命令中那样。
command = "sed -i '3s/.*/terraform working ${aws_instance.masters.0.private_ip}/g' ../ansible-provision/test"
答案 0 :(得分:0)
我刚刚解决了将IP列表加入到用逗号分隔的字符串中,然后将该行写入文件:
command = "sed -i '3s/.*/terraform working ${join(" ", aws_instance.masters.*.private_ip)}/g' ../ansible-provision/test"