diff --git a/lib/ansible/modules/cloud/amazon/ec2.py b/lib/ansible/modules/cloud/amazon/ec2.py index b77a74e2185..a52b1fa3bfa 100644 --- a/lib/ansible/modules/cloud/amazon/ec2.py +++ b/lib/ansible/modules/cloud/amazon/ec2.py @@ -227,7 +227,8 @@ options: instance_initiated_shutdown_behavior: version_added: "2.2" description: - - Set whether AWS will Stop or Terminate an instance on shutdown + - Set whether AWS will Stop or Terminate an instance on shutdown. This parameter is ignored when using instance-store + images (which require termination on shutdown). required: false default: 'stop' choices: [ "stop", "terminate" ] @@ -1193,7 +1194,16 @@ def create_instances(module, ec2, vpc, override_count=None): # (the default) or 'terminate' here. params['instance_initiated_shutdown_behavior'] = instance_initiated_shutdown_behavior or 'stop' - res = ec2.run_instances(**params) + try: + res = ec2.run_instances(**params) + except boto.exception.EC2ResponseError as e: + if (params['instance_initiated_shutdown_behavior'] != 'terminate' and + "InvalidParameterCombination" == e.error_code): + params['instance_initiated_shutdown_behavior'] = 'terminate' + res = ec2.run_instances(**params) + else: + raise + instids = [i.id for i in res.instances] while True: try: