Я создал пару экземпляров Ec2 в нескольких подсетях и назначил 4 вторичных Ips для ENI по умолчанию (устройство 0) - теперь вывод aws_network_interface атрибута private_ips дает все IP-адреса, включая IP-адрес хост-частного и другие вторичные Ip, случайным образом ,
Теперь моя проблема заключается в том, что мне нужно исключить «host private ip» и один ip, который я назначаю «windows cluster», из выходных данных и предоставить остальное для создания балансировщика сетевой нагрузки aws. Есть ли простой способ сортировки вывода и исключения необходимых ip из списка вывода? Здесь я создаю NLB с целевым IP-адресом, поэтому мне нужно предоставить набор вторичных IP-адресов из каждого экземпляра ec2 для создания целевой группы.
код:
resource "aws_instance" "web_servers" {
count="2"
ami = "ami-0a9ca0496f746e6e0" # us-west-2
instance_type = "${var.instance_type}" # ="t2.medium"
#associate_public_ip_address = "true"
#user_data = ""
network_interface {
network_interface_id = "${element(aws_network_interface.foo.*.id,count.index}"
device_index = 0
}
}
resource "aws_network_interface" "foo" {
count="${var.instance["count"]}"
subnet_id = "{aws_subnet.web_subnet.*.id[count.index]}"
private_ips_count=4
security_groups = ["${aws_security_group.web.id}"]
}
output "priviate-ip-list"
{
value="${list(aws_network_interface.foo.*.private_ips)}"
}
вывод имеет полный список private_ips, включая приватный ip хоста.
Из списка мне нужно исключить 2 ips (один из них является ip частного хоста, а второй я буду использовать для кластера Windows "), скажем здесь, в коде, который я дал private_ips_count = 4 (выход будет иметь 5 ips для каждого экземпляра).
поэтому, если я исключу 2 ips, у меня останется 3 из каждого экземпляра.
выходы:
private-ip-list=[
[
[10.170.20.110,10.170.21.120,10.170.22.177,10.170.18.111,10.170.21.100],
[10.170.150.10,10.170.152.44,10.170.151.11,10.170.150.11,10.170.155.10]
]
]
здесь частный ip первого экземпляра ec2 равен 10.170.21.120
частный ip в ec2 2-й экземпляр - 10.170.151.11
так что из вывода мне нужно исключить 10.170.21.120 и еще 1 IP
из второго набора исключите 10.170.151.11 и еще 1 ip.
из оставшегося набора
Как и в каждом другом IPS, мне нужно назначить вход NLB target_id для создания NLB. Здесь я создаю NLB с целью по IP.
resource "aws_lb_target_group_attachment" "test" {
target_group_arn = "${aws_lb_target_group.test.arn}"
#target_id = "ipaddress of 1 set [10.170.20.110,10.170.150.10]"
}
Я ищу идеи о том, как сохранить IP-адреса и исключить требуемые IP-адреса, а также передать параметр target_id с оставшимися ips