Beispiele für praktische Lösungen mithilfe der REST API und des Kommandozeilenprogramms cURL¶
Ändern der dem Instanzport zugewiesenen IP-Adresse¶
Hinweis
Die Verknüpfung einer IP-Adresse in OpenStack erfolgt nicht direkt mit der Instanz, sondern mit dem Port, der ihr zugewiesen ist. Um die IP-Adresse zu ändern, mit der auf die Instanz zugegriffen wird, müssen Sie daher die IP-Adresse für den Port ändern.
Verwendete Befehle:
Informationen über die Projekt-Ports erhalten:
Beschreibung der Syntax - https://developer.openstack.org/api-ref/network/v2/#list-ports
curl -s -H "X-Auth-Token: $OS_TOKEN" -H "Content-Type: application/json" https://api.sim-cloud.net:9696/v2.0/ports
- where
https://api.sim-cloud.net:9696 - is the access point for the Networking (Neutron) service
„/v2.0/ports“ - are necessary parameters from the documentation of the OpenStack Networking API
Parameter des Ports aktualisieren:
Beschreibung der Syntax - https://developer.openstack.org/api-ref/network/v2/#update-port
curl -s -X PUT -H "X-Auth-Token: $OS_TOKEN" -H "Content-Type: application/json" https://api.sim-cloud.net:9696/v2.0/ports/{port_id} -d '{ key:value}' | python -mjson.tool
- where
https://api.sim-cloud.net:9696 - is the access point for the Networking (Neutron) service
„/v2.0/{port_id}“ - are necessary parameters from the documentation of the OpenStack Networking API
„-d ‚{ key:value}‘“ - is a structure with the description of the new IP address for the port, according to the documentation of the OpenStack Networking API
Erste Daten:
- „demo“ - ist der Projektname
- 30.30.30.4 - ist die aktuelle IP-Adresse
- 30.30.30.124 - ist die neue IP-Adresse, auf die wir die aktuelle Adresse ändern wollen
Verfahren:
1. Ermitteln Sie die Token-ID für das Projekt wie oben beschrieben2. Erhalten Sie eine Liste der Ports für das Projekt und deren Parameter$ curl -s -H "X-Auth-Token: $OS_TOKEN" -H "Content-Type: application/json" https://api.sim-cloud.net:9696/v2.0/ports | python -mjson.tool { "ports": [ ... { "admin_state_up": true, "allowed_address_pairs": [], ... "fixed_ips": [ { "ip_address": "30.30.30.4", "subnet_id": "f7e4b2c2-6340-46ac-b10e-c94de49746b1" } ], "id": "f0910640-08b6-4595-88cf-0ecc4ce66dbf", "mac_address": "fa:76:3e:30:63:2b", ... }, ... ] }
Wählen Sie die gewünschten Daten aus:
Der Wert ‘ip_address’ (10.100.100.4) ist unsere <IPaddress> Der ‘ID’ Wert (c95d4d1d-233b-4322-8b3a-d77df89b3bf1) ist unsere {port_id}3. Mit allen erforderlichen Informationen ausgestattet, kann dem Port nun die gewünschte IP zugewiesen werden:curl -s -X PUT -H "X-Auth-Token: $OS_TOKEN" -H "Content-Type: application/json" https://api.sim-cloud.net:9696/v2.0/ports/f0910640-08b6-4595-88cf-0ecc4ce66dbf -d '{ "port": { "fixed_ips": [{"ip_address": "30.30.30.124"}]}}' | python -mjson.tool { "port": { "admin_state_up": true, ... "fixed_ips": [ { "ip_address": "30.30.30.124", "subnet_id": "c949746de4b1-6340-46ac-b10e-f7b2ce42" } ], "id": "f0910640-08b6-4595-88cf-0ecc4ce66dbf", ... } }Der neue Wert ist in der Antwort auf unsere Anfrage zu sehen. Er kann auch durch Wiederholung des Befehls unter Punkt 2 ermittelt werden.