Examples of practical solutions using a command line interface (CLI)
Changing the IP address assigned to the instance port
Note
Linking an IP address in OpenStack is not done to the instance directly, but to the port that is assigned to it. To change the IP address with which the instance is accessed, therefore, you must change the IP address for the port.
Commands used:
Show project properties
openstack project show <ProjectName>
- where
- <ProjectName> - is the name of the cloud-based project
Show list of ports for project
openstack port list --project <ProjectID>
- where
- <ProjectID> - is the cloud project ID
Delete current fixed IP address of port
openstack port set --no-fixed-ip <PortID>
- where
- <PortID> - is the ID of the port for which the IP address value will be changed
Assign fixed IP address for port
openstack port set --fixed-ip subnet=<SubnetID>,ip-address=<IPaddress> <PortID>
- where
- <SubnetID> - is the subnet ID from whose range the IP address will be allocated<IPaddress> - is the IP address that will be assigned to the port<PortID> - is the ID of the port for which the IP address will be assigned
Initial data:
“demo” - is the project name
10.100.100.4 - is the current IP address
10.100.100.8 - is the new IP address to which we wish to change the current address
Procedure:
1. Define the project ID based on the project name
openstack project show demo
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | |
| domain_id | b90911e0cc464e4d83c04bed2febc37a |
| enabled | True |
| id | a84030ae422a4173b4d0e7495cda2581 |
| is_domain | False |
| name | demo |
| parent_id | b90911e0cc464e4d83c04bed2febc37a |
+-------------+----------------------------------+
The value in the ‘id’ field (a84030ae422a4173b4d0e7495cda2581) is our ID
2. Obtain a list of ports for the project and their parameters
$ openstack port list --project a84030ae422a4173b4d0e7495cda2581
+--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+
| ID | Name | MAC Address | Fixed IP Addresses | Status |
+--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+
...
| c9153547-e72a-4f20-8792-6f6574d5baff | | fa:16:3e:a6:d0:0d | ip_address='172.16.0.3', subnet_id='17f8d13a-31cd-494d-a161-95e360ad3cd8' | ACTIVE |
| 27ad2d67-e35f-4b6f-877f-fdd36690d72f | | fa:16:3e:22:93:a6 | ip_address='10.100.100.4', subnet_id='8e82d9b3-0757-4ddc-9cf7-c82f1024d277' | ACTIVE |
...
+--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+
Choose the required data:
The ‘ID’ value (c95d4d1d-233b-4322-8b3a-d77df89b3bf1) — is our <PortID>
The ‘ip_address’ value (10.100.100.4) - is our <IPAddress>
The ‘subnet_id’ value (8e82d9b3-0757-4ddc-9cf7-c82f1024d277) - is our <SubnetID>
3. Now, having obtained all the necessary data:
Delete the old IP address value for our port
openstack port set --no-fixed-ip 27ad2d67-e35f-4b6f-877f-fdd36690d72f
Assign the required IP to the port
openstack port set --fixed-ip subnet=8e82d9b3-0757-4ddc-9cf7-c82f1024d277,ip-address=10.100.100.8 27ad2d67-e35f-4b6f-877f-fdd36690d72f
4. In the port or instance properties we now see the new IP address we have assigned:
$ openstack port list --project a84030ae422a4173b4d0e7495cda2581
+--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+
| ID | Name | MAC Address | Fixed IP Addresses | Status |
+--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+
...
| c9153547-e72a-4f20-8792-6f6574d5baff | | fa:16:3e:a6:d0:0d | ip_address='172.16.0.3', subnet_id='17f8d13a-31cd-494d-a161-95e360ad3cd8' | ACTIVE |
| 27ad2d67-e35f-4b6f-877f-fdd36690d72f | | fa:16:3e:22:93:a6 | ip_address='10.100.100.8', subnet_id='8e82d9b3-0757-4ddc-9cf7-c82f1024d277' | ACTIVE |
...
+--------------------------------------+------+-------------------+-----------------------------------------------------------------------------+--------+