diff --git a/library/cloud/ec2 b/library/cloud/ec2 index ac1f4012f4..654bf6e4cf 100644 --- a/library/cloud/ec2 +++ b/library/cloud/ec2 @@ -913,12 +913,6 @@ def create_instances(module, ec2, override_count=None): except boto.exception.BotoServerError, e: module.fail_json(msg = "Instance creation failed => %s: %s" % (e.error_code, e.error_message)) - if instance_tags: - try: - ec2.create_tags(instids, instance_tags) - except boto.exception.EC2ResponseError, e: - module.fail_json(msg = "Instance tagging failed => %s: %s" % (e.error_code, e.error_message)) - # wait here until the instances are up num_running = 0 wait_timeout = time.time() + wait_timeout @@ -950,6 +944,13 @@ def create_instances(module, ec2, override_count=None): for inst in res.instances: inst.modify_attribute('sourceDestCheck', False) + # Leave this as late as possible to try and avoid InvalidInstanceID.NotFound + if instance_tags: + try: + ec2.create_tags(instids, instance_tags) + except boto.exception.EC2ResponseError, e: + module.fail_json(msg = "Instance tagging failed => %s: %s" % (e.error_code, e.error_message)) + instance_dict_array = [] created_instance_ids = [] for inst in running_instances: