Terraform IP 范围
Terraform ip range
我正在尝试结合使用 for 循环和范围函数来创建一个 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]
我正在尝试结合使用 for 循环和范围函数来创建一个 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]