Terraform Создать несколько IP-адресов из блока CIDR - PullRequest
1 голос
/ 13 марта 2019

у меня есть переменная cidr=10.11.12.0/16

И ресурс с количеством

resource "aws_network_interface" "first" {
  count     = "${length(var.instance_names)}"
  provider  = "aws.base"

  subnet_id = "${var.cidr}"

  private_ips = ["${concat(
      list(var.first_network_interface_private_ip),
      var.first_network_interface_private_ip_additional
  )}"]

  source_dest_check = "${var.first_network_interface_source_dest_check_enabled}"

security_groups = [
     "${concat(
      list(aws_security_group.this.id),
      var.first_network_interface_security_group_additional
    )}"
  ]

  depends_on = [
    "aws_security_group.this",
  ]

  tags = "${merge(
    var.tags_global,
    var.tags_module,
    map("Name", format("%s - First Interface", element(var.instance_names, count.index))),
    map("Description", format("%s", element(var.instance_names, count.index)))
  )}"
}

я хочу, чтобы на каждой итерации в подсчете получался разный IP

я столкнулся с этим и не знаю, как извлечь первые три октета из

10.11.12. , возможно, нужно использовать регулярные выражения для получения октетов из CIDR?, или есть другое решение для моей проблемы?

1 Ответ

0 голосов
/ 13 марта 2019

Разобрался

  private_ips = ["${concat(
      list(cidrhost(var.cidr , count.index + 249)),
      var.first_network_interface_private_ip_additional
  )}"]

получение 10.11.12.249/250 IP для обеих машин

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...