Advertisement
Guest User

Untitled

a guest
Feb 12th, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. #!/usr/bin/env python
  2.  
  3. import boto3
  4. import yaml
  5. from boto3.session import Session
  6.  
  7. regions = []
  8. inst_list = []
  9. lb_list = []
  10. db_list = []
  11.  
  12. aws_access_key = raw_input("Enter your AWS_ACCESS_KEY_ID: ")
  13. aws_secret_key = raw_input("Enter your AWS_ACCESS_ACCESS_KEY_ID: ")
  14.  
  15. def region_list():
  16. ec2c = boto3.client('ec2')
  17. for region in ec2c.describe_regions()['Regions']:
  18. regions.append(region['RegionName'])
  19. return regions
  20.  
  21. def instance_list(aws_access_key, aws_secret_key):
  22. for region in region_list():
  23. session = Session(aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key)
  24. ec2=session.resource('ec2', region_name = region)
  25. for instance in ec2.instances.all():
  26. 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'])
  27. inst_list.append(inst_dict)
  28. return inst_list
  29.  
  30. def elb_list(aws_access_key, aws_secret_key):
  31. for region in region_list():
  32. client = boto3.client('elb', aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key, region_name=region)
  33. elbs = client.describe_load_balancers()
  34. for elb in elbs['LoadBalancerDescriptions']:
  35. elb_dict = dict(region = region, resource_type = 'ELB', name = elb['LoadBalancerName'])
  36. lb_list.append(elb_dict)
  37. return lb_list
  38.  
  39. def rds_list(aws_access_key, aws_secret_key):
  40. for region in region_list():
  41. client = boto3.client('rds', aws_access_key_id=aws_access_key, aws_secret_access_key=aws_secret_key, region_name=region)
  42. rdss = client.describe_db_instances()
  43. for rds in rdss['DBInstances']:
  44. db_dict = dict(region = region, resource_type = 'RDS', name = rds['DBInstanceIdentifier'], type = rds['DBInstanceClass'], engine = rds['Engine'], version = rds['EngineVersion'])
  45. db_list.append(db_dict)
  46. return db_list
  47.  
  48. for entity in instance_list(aws_access_key, aws_secret_key):
  49. with open('data.yaml', 'a') as outfile:
  50. outfile.write( yaml.dump(entity, default_flow_style=False))
  51.  
  52. for entity in elb_list(aws_access_key, aws_secret_key):
  53. with open('data.yaml', 'a') as outfile:
  54. outfile.write( yaml.dump(entity, default_flow_style=False))
  55.  
  56. for entity in rds_list(aws_access_key, aws_secret_key):
  57. with open('data.yaml', 'a') as outfile:
  58. outfile.write( yaml.dump(entity, default_flow_style=False))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement