mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Add parameter to ec2
module to control instance shutdown behavior (stop|terminate)
This commit is contained in:
parent
9b7e866964
commit
b0135fadea
1 changed files with 18 additions and 0 deletions
|
@ -203,6 +203,13 @@ options:
|
||||||
required: false
|
required: false
|
||||||
default: no
|
default: no
|
||||||
choices: [ "yes", "no" ]
|
choices: [ "yes", "no" ]
|
||||||
|
instance_initiated_shutdown_behavior:
|
||||||
|
version_added: "2.2"
|
||||||
|
description:
|
||||||
|
- Set whether AWS will Stop or Terminate an instance on shutdown
|
||||||
|
required: false
|
||||||
|
default: 'stop'
|
||||||
|
choices: [ "stop", "terminate" ]
|
||||||
state:
|
state:
|
||||||
version_added: "1.3"
|
version_added: "1.3"
|
||||||
description:
|
description:
|
||||||
|
@ -889,6 +896,7 @@ def create_instances(module, ec2, vpc, override_count=None):
|
||||||
termination_protection = module.boolean(module.params.get('termination_protection'))
|
termination_protection = module.boolean(module.params.get('termination_protection'))
|
||||||
network_interfaces = module.params.get('network_interfaces')
|
network_interfaces = module.params.get('network_interfaces')
|
||||||
spot_launch_group = module.params.get('spot_launch_group')
|
spot_launch_group = module.params.get('spot_launch_group')
|
||||||
|
instance_initiated_shutdown_behavior = module.params.get('instance_initiated_shutdown_behavior')
|
||||||
|
|
||||||
# group_id and group_name are exclusive of each other
|
# group_id and group_name are exclusive of each other
|
||||||
if group_id and group_name:
|
if group_id and group_name:
|
||||||
|
@ -1040,6 +1048,9 @@ def create_instances(module, ec2, vpc, override_count=None):
|
||||||
private_ip_address = private_ip,
|
private_ip_address = private_ip,
|
||||||
))
|
))
|
||||||
|
|
||||||
|
# Spot instances do not support start/stop thereby not having the option to change shutdown behavior
|
||||||
|
params['instance_initiated_shutdown_behavior'] = instance_initiated_shutdown_behavior
|
||||||
|
|
||||||
res = ec2.run_instances(**params)
|
res = ec2.run_instances(**params)
|
||||||
instids = [ i.id for i in res.instances ]
|
instids = [ i.id for i in res.instances ]
|
||||||
while True:
|
while True:
|
||||||
|
@ -1074,6 +1085,12 @@ def create_instances(module, ec2, vpc, override_count=None):
|
||||||
module.fail_json(
|
module.fail_json(
|
||||||
msg="placement_group parameter requires Boto version 2.3.0 or higher.")
|
msg="placement_group parameter requires Boto version 2.3.0 or higher.")
|
||||||
|
|
||||||
|
if boto_supports_param_in_spot_request(ec2, 'instance_initiated_shutdown_behavior'):
|
||||||
|
params['instance_initiated_shutdown_behavior'] = instance_initiated_shutdown_behavior
|
||||||
|
elif instance_initiated_shutdown_behavior:
|
||||||
|
module.fail_json(
|
||||||
|
msg="instance_initiated_shutdown_behavior parameter is not supported by your Boto version.")
|
||||||
|
|
||||||
if spot_launch_group and isinstance(spot_launch_group, basestring):
|
if spot_launch_group and isinstance(spot_launch_group, basestring):
|
||||||
params['launch_group'] = spot_launch_group
|
params['launch_group'] = spot_launch_group
|
||||||
|
|
||||||
|
@ -1435,6 +1452,7 @@ def main():
|
||||||
source_dest_check = dict(type='bool', default=True),
|
source_dest_check = dict(type='bool', default=True),
|
||||||
termination_protection = dict(type='bool', default=False),
|
termination_protection = dict(type='bool', default=False),
|
||||||
state = dict(default='present', choices=['present', 'absent', 'running', 'restarted', 'stopped']),
|
state = dict(default='present', choices=['present', 'absent', 'running', 'restarted', 'stopped']),
|
||||||
|
instance_initiated_shutdown_behavior=dict(default='stop', choices=['stop', 'terminate']),
|
||||||
exact_count = dict(type='int', default=None),
|
exact_count = dict(type='int', default=None),
|
||||||
count_tag = dict(),
|
count_tag = dict(),
|
||||||
volumes = dict(type='list'),
|
volumes = dict(type='list'),
|
||||||
|
|
Loading…
Reference in a new issue