首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Terraform :如何在提供之后将实例IP发送到aws_instances

Terraform :如何在提供之后将实例IP发送到aws_instances
EN

Stack Overflow用户
提问于 2021-02-16 22:08:18
回答 1查看 116关注 0票数 0

示例代码

代码语言:javascript
复制
resource "aws_instance" "A" {
 #provisioning declarations
}

resource "aws_instance" "B" {
  #provisioning declarations
}

# Crux of problem : This should run after all instances are provisioned sending all IPs to each
resource "null_resource" "send_instance_ips" {
  
  depends_on = [aws_instance.A, aws_instance.B] 
  
  for_each = { for idx, instance in [aws_instance.A, aws_instance.B]: idx=> instance}
  
  connection {
    type = "ssh"
    user = "admin-user"
    private_key = file("~/id_rsa")
    host = each.value.public_ip
  }
  
  provisioner "remote-exec" { 
     inline = [
      "echo ${aws_instance.A.*.private_ip} > a_ip.txt",
      "echo ${aws_instance.B.*.private_ip} > b_ip.txt"
    ]
  }     
}

问题:如何在提供之后调用模块/规定将数据发送到实例

当我试图创建一个计划时,问题

代码语言:javascript
复制
Error: 2 problems:

- Invalid template interpolation value: Cannot include the given value in a string template: string required.
- Invalid template interpolation value: Cannot include the given value in a string template: string required.
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-16 22:17:08

您可以在null_resource中使用for_each循环您的实例。例如(在ubuntu实例上进行了测试,因此您必须将连接细节调整为您自己的):

代码语言:javascript
复制
resource "null_resource" "send_instance_ips" {
  
  for_each = { for idx, instance in [aws_instance.A,aws_instance.B]:
               idx=>instance}
  
  connection {
    user        = "ubuntu"
    host        = each.value.public_ip
    type        = "ssh"
    private_key = file("~/.ssh/id_rsa")
  }  
  
  provisioner "remote-exec" { 
     inline = [
        "echo ${each.value.private_ip} > a_ip.txt"
    ]
  }     
}

另外,我不确定您是否需要每个实例中的所有IP表单,还是循环中的当前实例IP。我选择在示例中使用第二个选项。但是这个示例也可以调整为使用所有的it,但是它需要修改您的inline部件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66232879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档