Advertisement
Guest User

Untitled

a guest
Dec 18th, 2014
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.15 KB | None | 0 0
  1. import sys, subprocess, json, os
  2. from pprint import pprint
  3.  
  4. # NOTE: You must have aws cli installed!
  5.  
  6. if __name__ == "__main__":
  7.  
  8.  
  9. key_path='~/.ssh/id_rsa'
  10. ssh_port = 22
  11.  
  12. cmd = 'aws ec2 describe-instances --query "Reservations[].Instances[].[Tags,PublicIpAddress,VpcId]"'
  13. proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  14. out = proc.communicate()[0]
  15. tmp_vms = json.loads(out)
  16. vms = {}
  17.  
  18. for vm in tmp_vms:
  19. vms[vm[0][0]['Value']] = vm[1]
  20.  
  21.  
  22. if len(vms) == 0:
  23. print "Error: No VMs exist"
  24. sys.exit(0)
  25.  
  26. if len(sys.argv) < 2:
  27. print "Usage: ./aws-connect [HOSTNAME] [SSH_USERNAME]"
  28. sys.exit(0)
  29.  
  30. if len(sys.argv) == 2:
  31. username = os.environ['USER']
  32. else:
  33. username = sys.argv[2]
  34.  
  35. for vm_name, ip in vms.iteritems():
  36.  
  37. if vm_name == sys.argv[1]:
  38.  
  39. cmd = "ssh -o UserKnownHostsFile=/dev/null -o CheckHostIP=no -o StrictHostKeyChecking=no -i {0} -p {1} {2}@{3}".format(key_path, ssh_port, username, ip)
  40. print "Running: {0}".format(cmd)
  41. sys.exit(subprocess.call(cmd, shell=True))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement