terraform - Terraform 从 CIDR 块创建多个 IP
问题描述
我有变量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 获取八位字节?或者我的问题还有其他解决方案吗?
解决方案
弄清楚了
private_ips = ["${concat(
list(cidrhost(var.cidr , count.index + 249)),
var.first_network_interface_private_ip_additional
)}"]
为两台机器获取 10.11.12.249/250 IP
推荐阅读
- hive - 在 Hive 中,有没有办法在 Y 列之前添加 X 列
- android - 为什么我录制的视频在使用改造上传到服务器后变成 0 字节?
- react-native - react-native 中的 ckeditor 实现
- java - 如何在数组列表中显示符号之前将数据存储到字符串?
- python - 在 Windows 上的 PyCharm 中安装 PyAudio
- sql - 带有年份条件的 SQL 语句
- php - Paypal-PHP-SDK V2 是否支持 Webhooks?
- amazon-web-services - AWS Cloudformation 的版本控制和管道
- python - 在 C++ 中返回 std::variant 的 numpy 数组
- ajax - 如何使用 ajax post 方法以模态形式显示验证摘要?