繁体   English   中英

Terraform ip 范围

[英]Terraform ip range

我正在尝试使用 for 循环和范围 function 的组合来创建 ip 列表。我正在尝试让循环遍历数字范围并将该数字附加为最后一位数字一个 ip 地址。

locals {
  windows_ip_list = [for i in range(var.Number) : format("%s%02d", "10.16.0.1", i)]
}

给变量 var.Number 一个 5 的值创建一个 5 元素的元组,但会出现以下错误。

│    9:   private_ip = local.windows_ip_list  #var.win_ip[count.index]
│     ├────────────────
│     │ local.windows_ip_list is tuple with 5 elements
│ 
│ Inappropriate value for attribute "private_ip": string required.
resource "aws_instance" "Windows" {
  ami = "ami-02c1f4de3809f0050"
  instance_type   = "t2.large"
  #subnet_id       = aws_subnet.Engineering[count.index].id 
  subnet_id = aws_subnet.windows.id 
  security_groups = [aws_security_group.Engineering.id]
  key_name = aws_key_pair.ENG-DEV.id
  count    = var.Number
  private_ip = local.windows_ip_list  #var.win_ip[count.index]
  associate_public_ip_address = false

任何帮助创建所需列表的帮助将不胜感激。

提前致谢。

您应该使用local.windows_ip_list[count.index]而不是local.windows_ip_list引用 windows_ip_list 元组中私有 ip 的索引,因为 private_ip 属性需要字符串值而不是列表

要获得清晰的视图,请尝试通过以下方式回显local.windows_ip_list包含的值:

terraform console

然后键入local.windows_ip_list并按回车

调用变量并使用 count.index 是修复它的方式。

private_ip = local.windows_ip_list[count.index]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM