Guest User

Untitled

a guest
Apr 22nd, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. # $HOME/.aws_util
  2. #
  3. # source this file in .bashrc or .zshrc
  4.  
  5. lsec2s () {
  6. aws ec2 describe-instances --filter "Name=instance-state-name,Values=running" --query 'Reservations[].Instances[].{ id: InstanceId, name: Tags[?Key==`Name`].[Value][0][0], role: Tags[?Key==`Role`].[Value][0][0], ip: PrivateIpAddress }'
  7. }
  8.  
  9. lsname () {
  10. lsec2s | jq "[.[] | select(.name == \"$1\") | .ip]" | jq -r ".[]"
  11. }
  12.  
  13. lsrole () {
  14. if [ $# = 1 ]; then
  15. if [ -z "$1" ]; then
  16. lsec2s | jq "[.[] | select(.role == null) | .ip]" | jq -r ".[]"
  17. else
  18. lsec2s | jq "[.[] | select(.role == \"$1\") | .ip]" | jq -r ".[]"
  19. fi
  20. else
  21. lsec2s | jq "[.[] | select(.role != null) | .role] | unique" | jq -r ".[]"
  22. fi
  23. }
  24.  
  25. lsid () {
  26. lsec2s | jq "[.[] | select(.id == \"$1\") | .ip]" | jq -r ".[]"
  27. }
  28.  
  29. sshrole () {
  30. ip=`lsrole $@ | perl -e 'srand; rand($.) < 1 && ($line = $_) while <>; print $line;'`
  31. ssh $ip
  32. }
  33.  
  34. run_on_role () {
  35. role=$1
  36. shift
  37. for i in `lsrole $role`; do
  38. ssh -oStrictHostKeyChecking=no $i $@
  39. done
  40. }
  41.  
  42. roled_ips () {
  43. lsec2s | jq "group_by(.role) | .[] | [{role: [.[] | .role][0], ips: [.[] | .ip]}]"
  44. }
  45.  
  46. run_on_all () {
  47. for ip in `lsrole ''`; do
  48. echo "$ip (-)"
  49. ssh -oStrictHostKeyChecking=no -oConnectTimeout=5 $ip $@ 2> /dev/null
  50. done
  51.  
  52. for role in `lsrole`; do
  53. ip=`lsrole $role | perl -e 'srand; rand($.) < 1 && ($line = $_) while <>; print $line;'`
  54. echo "$ip ($role)"
  55. ssh -oStrictHostKeyChecking=no -oConnectTimeout=5 $ip $@ 2> /dev/null
  56. done
  57. }
Add Comment
Please, Sign In to add comment