У меня есть переменная с первыми 3 октетами диапазона IP-адресов, например «172.16.100», и 2 переменные с начальным IP-адресом (последний октет, например 2) и номером IP-адреса, например 3.
Как мне создать такой список, чтобы получить массив/список типа:
[ 172.16.100.2, 172.16.100.3, .....]
Или есть лучший способ создать диапазон IP-адресов из начального IP-адреса?
Спасибо!
Вы не можете назначить IP addresses в диапазоне от «0» до «3» в лазурном языке. Azure резервирует первые четыре адреса в каждом диапазоне адресов подсети. Для получения более подробной информации обратитесь к этому MS Doc.


Вы можете использовать функцию диапазона для создания списка чисел с использованием начального значения, предельного значения и значения шага:
range(max)
range(start, limit)
range(start, limit, step)
variable "start_ip_address" {
type = string
description = "The starting IP address in format 'x.x.x' - example '172.16.100'"
default = "172.16.100"
}
variable "start_octet" {
type = number
description = "The starting octet in the IP address."
default = 4
}
variable "ip_count" {
type = number
description = "Number of IP addresses to generate."
default = 5
}
locals {
ip_addresses = [
for i in range(var.ip_count) :
format("%s.%d", var.start_ip_address, i + var.start_octet)
]
}
output "ip_addresses" {
value = local.ip_addresses
}
Бегу terraform plan:
Changes to Outputs:
+ ip_addresses = [
+ "172.16.100.4",
+ "172.16.100.5",
+ "172.16.100.6",
+ "172.16.100.7",
+ "172.16.100.8",
]
Думаю, большего и не сделаешь, только это: stackoverflow.com/questions/54122560/…