【问题标题】:Splitting a cidr range in Terraform into two services?将 Terraform 中的 cidr 范围拆分为两个服务?
【发布时间】:2022-11-22 17:36:20
【问题描述】:

继续How to split a private CIDR range across three AZs?

假设我有 1024 个地址 CIDR 范围 10.162.192.0/22,我需要在两个服务中拆分为 32 个地址(5 位)。

我知道我可以在 terraform console 中运行:

cidrsubnets("10.162.192.0/22", 5, 5, 5, 5, 5, 5)

tolist([
  "10.162.192.0/27",
  "10.162.192.32/27",
  "10.162.192.64/27",
  "10.162.192.96/27",
  "10.162.192.128/27",
  "10.162.192.160/27",
])

但是我不明白的是如何拆分命令。例如我想要:

internal = cidrsubnets("10.162.192.0/22", 5, 5, 5) # correct
public = cidrsubnets("10.162.192.64/27", 5, 5, 5) # wrong output

公共变量与 1 个地址完全错误:

> cidrsubnets("10.162.192.64/27", 5, 5, 5)
tolist([
  "10.162.192.64/32",
  "10.162.192.65/32",
  "10.162.192.66/32",
])

我想从“10.162.192.64/27”继续:

([
  "10.162.192.96/27",
  "10.162.192.128/27",
  "10.162.192.160/27",
])

请问我错过了什么?

【问题讨论】:

    标签: terraform cidr


    【解决方案1】:

    您可以使用argument expantion(即三个点)来执行此操作:

    cidrsubnets("10.162.192.64/27", [for i in range(32): 5]...)
    

    【讨论】:

    • 嗨@mar​​cin,这没有给我我想要的吗?
    • @hendry 你是什么意思?正如您所要求的,这将创建 32 个子网。
    猜你喜欢
    • 2020-02-28
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多