Dodawanie instancji do więcej niż jednej sieci lub konkretnego portu
Obecne api nie pozwala na dodanie instancji do więcej niż jednej sieci lub do konkretnego portu, przez co nie można jej przypisać stałego adresu.
Aktualnie zmienna openstack_instance_network mapowana jest na parametr network:
os_server:
network: "{{ openstack_instance_network }}"
Identyczny efekt można uzyskać używając parametru nics z net-name:
os_server:
nics: ["net-name={{ openstack_instance_network }}"]
Moja propozycja to dodanie zmiennych (przykład z tworzeniem jednego portu i przypięcia instancji do pięcu sieci):
openstack_ports:
- name: "my-port"
network: "my-network"
addresses:
- subnetwork: "my-subnetwork"
address: "10.123.123.123"
openstack_instance_interfaces:
- network-name: "my-network"
- network-id: "1234-1234-87654321"
- port-name: "my-port"
- port-id: "1234-1234-43214321"
- "my-super-network"
Dających rezultat:
os_port:
name: "my-port"
network: "my-network"
fixed_ips:
- subnet-id: "my-subnetwork"
ip_address: "10.123.123.123"
os_server:
nics:
- "net-name=my-network"
- "net-id=1234-1234-87654321"
- "port-name=my-port"
- "port-id=1234-1234-43214321"
- "net-name=my-super-network"
Plus kompatybilność wstecz z openstack_instance_network i defaulty:
- Ustaw openstack_instance_interfaces jako pustą listę:
openstack_instance_interfaces: []
- Jak ktoś ustawił openstack_instance_network to dodaj do openstack_instance_interfaces:
openstack_instance_interfaces: "{{ openstack_instance_interfaces }} + [{{ openstack_instance_network }}]"
- Przeiteruj interfaces openstack_instance_interfaces, jeżeli wartość jest stringiem to uznaj domyślnie za network-name:
openstack_instance_interfaces:
- "my-network-1"
- port-id: 4321-4321-12341234
- "my-network-2"
w
openstack_instance_interfaces:
- network-name: "my-network-1"
- port-id: 4321-4321-12341234
- network-name: "my-network-2"