Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import boto3
- import yaml
- from boto3.session import Session
- regions = []
- inst_list = []
- lb_list = []
- db_list = []
- aws_access_key = raw_input("Enter your AWS_ACCESS_KEY_ID: ")
- aws_secret_key = raw_input("Enter your AWS_ACCESS_ACCESS_KEY_ID: ")
- def region_list():
- ec2c = boto3.client('ec2')
- for region in ec2c.describe_regions()['Regions']:
- regions.append(region['RegionName'])
- return regions
- def instance_list(aws_access_key, aws_secret_key):
- for region in region_list():
- session = Session(aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key)
- ec2=session.resource('ec2', region_name = region)
- for instance in ec2.instances.all():
- inst_dict = dict(region = region, resource_type='EC2', id = instance.id, instance_type = instance.instance_type, state = instance.state['Name'], name = instance.tags[0]['Value'])
- inst_list.append(inst_dict)
- return inst_list
- def elb_list(aws_access_key, aws_secret_key):
- for region in region_list():
- client = boto3.client('elb', aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key, region_name=region)
- elbs = client.describe_load_balancers()
- for elb in elbs['LoadBalancerDescriptions']:
- elb_dict = dict(region = region, resource_type = 'ELB', name = elb['LoadBalancerName'])
- lb_list.append(elb_dict)
- return lb_list
- def rds_list(aws_access_key, aws_secret_key):
- for region in region_list():
- client = boto3.client('rds', aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key, region_name=region)
- rdss = client.describe_db_instances()
- for rds in rdss['DBInstances']:
- db_dict = dict(region = region, resource_type = 'RDS', name = rds['DBInstanceIdentifier'], type = rds['DBInstanceClass'], engine = rds['Engine'], version = rds['EngineVersion'])
- db_list.append(db_dict)
- return db_list
- for entity in instance_list(aws_access_key, aws_secret_key):
- with open('data.yaml', 'a') as outfile:
- outfile.write( yaml.dump(entity, default_flow_style=False))
- for entity in elb_list(aws_access_key, aws_secret_key):
- with open('data.yaml', 'a') as outfile:
- outfile.write( yaml.dump(entity, default_flow_style=False))
- for entity in rds_list(aws_access_key, aws_secret_key):
- with open('data.yaml', 'a') as outfile:
- outfile.write( yaml.dump(entity, default_flow_style=False))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement