Есть ли способ получить IP-адрес, назначенный виртуальной машине из определенной подсети, и встроить его в шаблон оркестровки Heat (учитывая, что в сети несколько подсетей, и мы создаем один порт только для всех подсетей)? Мне нужна эта информация для плавающего IP. Как и в случае порта с несколькими фиксированными адресами на одном порту, нам нужно указать конкретный IP-адрес для создания плавающего IP-адреса.
Ключ get_attr не очень полезен. Вот представление JSON.
"TestVM_FIPTest1": {
"type": "OS::Neutron::FloatingIP",
"properties": {
"floating_network_id": "public",
"port_id": {
"get_resource": "TestVM_Test1sub2sub1_Port"
},
"fixed_ip_address":
{
"get_attr": ["TestVM_Test1sub2sub1_Port", "fixed_ips", 1, "ip_address"]
}
}
}
Причина в том, что мне нужно передать индекс, чтобы получить IP-адрес, назначенный порту. Но невозможно сказать, из какой подсети назначен этот IP-адрес (поскольку на этом порту отображается несколько подсетей) или какой индекс имеет IP-адрес, назначенный из нужной подсети.
Сейчас я использую один шаблон для одновременного создания всех ресурсов.