将EC2实例公共IP添加到本地Ansible主机文件

时间:2018-10-08 16:04:04

标签: amazon-web-services amazon-ec2 ansible terraform

我正在使用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地址。

1 个答案:

答案 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

参考

https://www.terraform.io/intro/getting-started/outputs.html

https://www.terraform.io/docs/configuration/outputs.html