Skip to content

Instantly share code, notes, and snippets.

@neosavvy
Created March 28, 2018 17:04
Show Gist options
  • Save neosavvy/bacdf28b69399785599b16b0c093e70e to your computer and use it in GitHub Desktop.
Save neosavvy/bacdf28b69399785599b16b0c093e70e to your computer and use it in GitHub Desktop.
Kill all the errant EC2 Instances that have disableApiTermination set to True
import boto3
client = boto3.client('ec2', region_name='us-east-1')
ec2_regions = [region['RegionName'] for region in client.describe_regions()['Regions']]
for region in ec2_regions:
conn = boto3.resource('ec2', region_name=region)
instances = conn.instances.filter()
ids = []
for instance in instances:
ids.append(instance.id)
#conn.instances.filter(Filters=[{'Name': 'InstanceIds', 'Values': ids},{'Name': 'instance-state-name', 'Values': ['running']}] ).stop()
conn.instances.filter(Filters=[{'Name': 'instance-state-name', 'Values': ['running']}] ).stop()
regionalClient = boto3.client('ec2', region_name=region)
for id in ids:
print('Modifying Attribute for ' + region + ' and id ' + id)
try:
regionalClient.modify_instance_attribute(InstanceId=id, Attribute='disableApiTermination', Value='false')
except Exception as e:
print('Ignore')
#conn.instances.modify_instance_attribute( ids, "disableApiTermination", "false" )
conn.instances.filter(InstanceIds=ids).terminate()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment