2014-07-03 9 views
5

Ich starte Instanz in Openstack mit BotoWie IP-Adresse der gestarteten Instanz mit Boto

myinstance = conn.run_instances('ami-0000007d',min_count=1,max_count=1, instance_type = 'm1.small') 

newmachine=myinstance.instances[0] 

newMachine die Info hat im Zusammenhang mit der gestarteten Instanz erhalten. Ich habe versucht,

vars(newmachine) 

und die ip-adresse und private_ip_address von Variablen sind leer. Wie kann ich die IP-Adresse der gestarteten Instanz erhalten?

Antwort

9

Aktualisieren Sie den Wert, bis die Instanz den Status "Running" erreicht. An diesem Punkt sollte die IP vorhanden sein (nicht, dass Sie irgendetwas mit der IP machen könnten, bevor sich die Instanz im laufenden Zustand befindet).

reservation = conn.run_instances(...) 

instance = reservation.instances[0] 

while instance.update() != "running": 
    time.sleep(5) # Run this in a green thread, ideally 

print instance.ip_address 
+0

ich ein Problem damit hatte und ruft 'instance.update()' wieder 5 Sekunden nach dem Zustand „running“ eingegeben löste es. –

+0

Kann eine Instanz nicht mehrere IP-Adressen haben? – ThorSummoner

+0

Wenn Sie die private IP-Adresse möchten, können Sie instance.private_ip_address verwenden – cgseller