How to get fixed IP address of openstack instance using novaclient

2.7k views Asked by At

I spin-up openstack instances using noveclient python api

server = nova.servers.create(name ="xxx",password="xxx",image="xxx",flavor= flavor.id ,key_name = "adikarikey",nics = [{'net-id': 'xxx','v4-fixed-ip': ''}])

I want to get the IP address of the created instance. How can I do it ?

1

There are 1 answers

0
Miguel Grinberg On

Here is one way to do it, not sure if it is the most efficient, but this works for me on Rackspace cloud servers. Note that because spinning up a server is an asynchronous task it is necessary to wait for the server to be operational before extracting the IP address.

ip_address = None
for network in server.networks['public']:
    if re.match('\d+\.\d+\.\d+\.\d+', network):
        ip_address = network
        break
if ip_address is None:
    print 'No IP address assigned!'
    sys.exit(1)
print 'The server is waiting at IP address {0}.'.format(ip_address)

This example is part of an article I wrote on the nova APIs, as supported by Rackspace. The full article is here.