Как получить IP-адрес запущенного экземпляра с помощью Boto

#python #amazon-ec2 #boto #openstack

#python #amazon-ec2 #boto #openstack

Вопрос:

Я запускаю экземпляр в openstack с помощью boto

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

newmachine=myinstance.instances[0]
  

У newMachine есть информация, связанная с запущенным экземпляром. Я пытался

 vars(newmachine)
  

и переменные ip_address и private_ip_address пусты. Как я могу получить ip_address запущенного экземпляра?

Ответ №1:

Обновляйте значение до тех пор, пока экземпляр не перейдет в рабочее состояние. На этом этапе IP-адрес должен присутствовать (не то чтобы вы могли что-то сделать с IP-адресом до того, как экземпляр перейдет в рабочее состояние).

 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
  

Комментарии:

1. У меня была проблема с этим, и повторный вызов instance.update() через 5 секунд после того, как он перешел в состояние «running», решил ее.

2. Может ли экземпляр не иметь нескольких IP-адресов?

3. если вам нужен частный IP-адрес, вы можете использовать instance.private_ip_address