如何使用novaclient获取OpenStack实例的固定IP地址

3 投票
1 回答
2695 浏览
提问于 2025-04-18 16:59

我使用noveclient这个Python接口来创建OpenStack实例。

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 个回答

0

这里有一种方法可以做到这一点,虽然我不确定这是不是最有效的,但在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支持这个API。完整的文章可以在这里找到。

撰写回答