Есть ли способ создать несколько подсетей в AWS, используя terraform, используя диапазон cidr - PullRequest
0 голосов
/ 11 декабря 2019

У меня есть две входные и внутренние подсети, в настоящее время я передаю диапазон подсети как переменную, но есть ли способ выбрать свободный диапазон cidr в VPC через terraform?

1 Ответ

0 голосов
/ 11 декабря 2019

У Hashicorp есть модуль для помощи с CIDR подсети https://registry.terraform.io/modules/hashicorp/subnets/cidr/1.0.0

module "subnet_addrs" {
  source = "hashicorp/subnets/cidr"

  base_cidr_block = "10.0.0.0/8"
  networks = [
    {
      name     = "foo"
      new_bits = 8
    },
    {
      name     = "bar"
      new_bits = 8
    },
    {
      name     = "baz"
      new_bits = 4
    },
    {
      name     = "beep"
      new_bits = 8
    },
    {
      name     = "boop"
      new_bits = 8
    },
  ]
}

, который обеспечит вывод network_cidr_blocks со значениями

{
  foo  = "10.0.0.0/16"
  bar  = "10.1.0.0/16"
  baz  = "10.16.0.0/12"
  beep = "10.32.0.0/16"
  boop = "10.33.0.0/16"
}

Вы также можете рассчитать егоиз VPC CIDR самостоятельно, используя некоторые встроенные функции, cidrsubnets и cidrsubnet

https://www.terraform.io/docs/configuration/functions/cidrsubnets.html

> cidrsubnets("10.0.0.0/8", 8, 8, 4, 8, 8)
[
  "10.0.0.0/16",
  "10.1.0.0/16",
  "10.16.0.0/12",
  "10.32.0.0/16",
  "10.33.0.0/16",
]
...