EC2实例创建和轮询直到状态正在运行'使用boto库

时间:2015-04-29 05:37:41

标签: amazon-web-services amazon-ec2 boto fabric

我想使用boto库创建一个新的spot实例,并使用fabric在其上运行一些命令。我使用以下代码

instance = reservations[0].instances[0]
status = instance.update()
tries = 40
i=0
while status == 'pending':
  log.info("Status of instance: [ " + job_instance_id + " ] is pending")
  time.sleep(10)
  status = instance.update()
  i=i+1
  if i > tries:
    break
log.info("Status of instance [ " + job_instance_id + " ] is " + status)
if status == 'running':
  log.info("Adding tag")
  instance.add_tag("Name", "test_tag")
  public_dns_name = instance.public_dns_name
  log.info("Host Name : " + public_dns_name)
  init_instance(public_dns_name)

在init_instance中,我使用fabric运行一些命令。这些命令有时会失败,并且#34;无法连接到主机"错误。有时它没有任何问题也能正常工作。你能告诉我为什么有时会失败吗?我怎么处理这个?我已经进行了轮询,直到实例的状态发生了变化,即“正在运行”。仅在实例状态移至'运行'

后,才通过ssh运行命令

0 个答案:

没有答案