[英]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.