【问题标题】:Add EC2 instance public IP to local Ansible hosts file将 EC2 实例公共 IP 添加到本地 Ansible 主机文件
【发布时间】:2019-03-13 08:30:39
【问题描述】:

我正在使用 terraform 创建一个 AWS EC2 实例,并且我想将新创建的机器的公共 IP 放到我的本地 /etc/ansible/hosts 文件中。尝试使用 local_file terraform 模块,但没有成功。您知道如何使用 terraform 提取这些信息吗? 主机文件应该是这种格式的东西:

A.B.C.D ansible_ssh_user=user ansible_ssh_private_key_file=/path/to/private/key

A.B.C.D 将是新创建的实例的 IP 地址。

【问题讨论】:

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


【解决方案1】:

您需要为要在 Terraform 中的 output.tf 文件中公开的 IP 地址创建一个 output。类似于:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-20
    • 2015-06-07
    • 1970-01-01
    • 1970-01-01
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多