Есть ли способ получить IP-адрес, назначенный виртуальной машине из определенной подсети, и встроить его в шаблон оркестровки Heat? (все подсети на 1 порту)

Есть ли способ получить 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-адрес, назначенный из нужной подсети.

Сейчас я использую один шаблон для одновременного создания всех ресурсов.


person siddarth rai    schedule 02.07.2016    source источник


Ответы (1)


Вы можете назначить статический IP-адрес виртуальной машине в шаблоне тепла, как указано ниже:

resources:
  myVM_port1:
    type: OS::Neutron::Port
    properties:
      name: "myVM_port1"
      network_id: { get_param: network_id } 
      fixed_ips: [{"subnet": { get_param: network-subnet }, "ip_address": { get_param: fixed-ip } }]

  myVM_1:
    type: OS::Nova::Server
    properties:
      name: "myVM"
      image: { get_param: cirros_Image }
      flavor: "m1.tiny"
      availability_zone: "compute1"
      networks:
      - port: { get_resource: myVM_port1 }
person IRSHAD    schedule 08.09.2016