Terraform从CIDR块创建多个IP

时间:2019-03-13 12:25:33

标签: terraform

我有变量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

我遇到了this,不知道如何从中提取前三个八位字节

10.11.12。 ,可能需要使用正则表达式从CIDR中获取八位位组?还是我的问题还有其他解决方案?

1 个答案:

答案 0 :(得分:0)

想通了

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

为两台计算机获取10.11.12.249/250个IP