我使用Instance-1Terraform在AWS中创建了两个实例(和Instance-2)。我用相同的脚本在Instance-1上安装了Ansible,我想从Instance-1将一个剧本推送到Instance-2上。
我想要指定公共IP、用户名和主机文件的密钥路径,在安装Ansible的Instance-1中。
如何获取Instance-2的公共IP,以便在Ansible主机文件中指定上述属性?
发布于 2017-12-07 15:30:39
如果您和我一样,在更大的业务流程中将terraform和ansible运行作为单独的步骤,那么使用terraform输出来保存您在ansible期间需要的IP地址(Es)。例如,我们为整个集群提供了terraform,只允许来自一个堡垒主机的SSH。我使用以下方法来保存堡垒的IP地址(它位于弹性IP后面):
output "bastion.ip" {
value = "${aws_eip.bastion.public_ip}"
}然后在terraform apply之后检索它
bash-4.3# terraform output bastion.ip
52.1.2.3发布于 2017-12-07 10:49:21
可以通过terrraform获取已启动实例的public_ip,
资源"aws_instance“"web”{
……
供应方“本地-主管”{
command = "echo ${aws_instance.web.public_ip} >> /path/to/save"}
https://stackoverflow.com/questions/47688613
复制相似问题