Ebi*_*vis 4 amazon-web-services ansible terraform
我已经使用Terraform在AWS中创建了两个实例(Instance-1和Instance-2)。我安装Ansible 在同一个脚本,我想一个剧本推到从。Instance-1Instance-2Instance-1
我想在安装Ansible的地方指定Ansible Host文件的公共IP,用户名和密钥路径Instance-1。
如何Instance-2在Ansible主机文件中获取用于指定上述属性的public-IP ?
如果您像我一样,在较大的业务流程中将terraform和ansible运行作为单独的步骤,请使用terraform输出节省ansible期间所需的IP地址。例如,我们为整个群集提供terraform,仅允许来自堡垒主机的SSH。我使用以下命令保存本营的IP地址(它位于弹性IP后面):
output "bastion.ip" {
value = "${aws_eip.bastion.public_ip}"
}
Run Code Online (Sandbox Code Playgroud)
然后在获取之后terraform apply:
bash-4.3# terraform output bastion.ip
52.1.2.3
Run Code Online (Sandbox Code Playgroud)
您可以通过 terraform 使用以下命令获取已启动实例的 public_ip:
资源“aws_instance”“网络”{
配置者“本地执行”{
command = "echo ${aws_instance.web.public_ip} >> /path/to/save"
Run Code Online (Sandbox Code Playgroud)
}
https://www.terraform.io/docs/provisioners/local-exec.html
| 归档时间: |
|
| 查看次数: |
2291 次 |
| 最近记录: |