Skip to content

Instantly share code, notes, and snippets.

@gabrielrojasnyc
Created February 1, 2017 21:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gabrielrojasnyc/19aec803507cf21990b0ced6a4f2e62a to your computer and use it in GitHub Desktop.
Save gabrielrojasnyc/19aec803507cf21990b0ced6a4f2e62a to your computer and use it in GitHub Desktop.
Shutdown ec2 instances not tag
#! /usr/bin/env python3
"""
This program terminate instances if proper tag is not used
"""
import time
import boto3
start_time = time.time()
ec2 = boto3.resource('ec2')
ec2_client = boto3.client('ec2')
tag_deparment = ['Finance', 'Marketing', 'HumanResources', 'Research'] # Your departments
shutdown_instance = False
for instance in ec2.instances.all():
instance_state = instance.state['Name']
if instance_state == ('running' or 'pending'):
for tags in instance.tags:
for department in tag_deparment:
if tags['Value'] == department:
shutdown_instance = False
break
else:
shutdown_instance = True
print('The following instance will be shutdown', instance.id, 'Shutdown = ', shutdown_instance)
if shutdown_instance is True:
ec2_client.stop_instances(
InstanceIds = [instance.id],
Force = True
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment