noveclient python api を使用して 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アドレスを取得したい。どうすればできますか?
noveclient python api を使用して 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アドレスを取得したい。どうすればできますか?
これが最も効率的かどうかはわかりませんが、これは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
この例は、Rackspace でサポートされている APIについて私が書いた記事の一部です。記事全文はこちら.