2014-07-03 16 views
5

Sto lanciando esempio nel OpenStack utilizzando botoCome ottenere l'indirizzo IP dell'istanza avviato con Boto

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

newmachine=myinstance.instances[0] 

newMachine ha le informazioni relative all'istanza lanciato. Ho provato

vars(newmachine) 

e l'indirizzo_ip e l'indirizzo_ip privato delle variabili sono vuoti. Come posso ottenere l'indirizzo_ip dell'istanza lanciata?

risposta

9

Aggiorna il valore finché l'istanza non entra nello stato In esecuzione. A quel punto, l'IP dovrebbe essere presente (non che ci sia qualcosa che potresti fare con l'IP prima che l'istanza sia in esecuzione).

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

Ho avuto un problema con questo e chiamando 'instance.update()' di nuovo 5 secondi dopo essere entrato nello stato "in esecuzione" risolto. –

+0

Un'istanza può non avere più indirizzi IP? – ThorSummoner

+0

se si desidera l'indirizzo IP privato, è possibile utilizzare instance.private_ip_address – cgseller