Как получить фиксированный 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. Полная статья здесь.