Как получить фиксированный IP-адрес экземпляра openstack, используя novaclient

Я раскручиваю экземпляры openstack, используя 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': ''}])

Я хочу получить IP-адрес созданного экземпляра. Как мне это сделать?

1 ответ

Вот один из способов сделать это, но я не уверен, что он самый эффективный, но у меня это работает на облачных серверах Rackspace. Обратите внимание, что, поскольку раскрутка сервера является асинхронной задачей, необходимо дождаться, пока сервер заработает, прежде чем извлекать IP-адрес.

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)

Этот пример является частью статьи, которую я написал на nova API, поддерживаемые Rackspace. Полная статья здесь.

Другие вопросы по тегам