#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