我正在使用terraform创建一个AWS EC2实例,我想将新创建的计算机的公共IP放到我的本地/ etc / ansible / hosts文件中。试图用local_file terraform模块来做,但是没有成功。您是否知道如何使用terraform提取此信息? 主机文件应采用以下格式:
A.B.C.D ansible_ssh_user =用户ansible_ssh_private_key_file = / path / to / private / key
A.B.C.D将是新创建的实例的IP地址。
答案 0 :(得分:0)
您需要为要在Terraform的output
文件中公开的IP地址创建一个output.tf
。类似于:
output "private_ips" {
value = "${aws_instance.<name>.private_ip}"
}
然后您可以使用terraform output private_ips
在命令行中调用它
将其附加到您的/etc/ansible/hosts
文件的一种快速而肮脏的方法是:
ip=`terraform output private_ips` ; echo "$ip ansible_ssh_user=user \
ansible_ssh_private_key_file=/path/to/private/key" >> /etc/ansible/hosts
参考