Last active
August 29, 2015 14:06
-
-
Save Fitzsimmons/039d95863c7de42e5f3b to your computer and use it in GitHub Desktop.
Quick way to ssh into every slice in an environment on EY Cloud
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=begin | |
USAGE: | |
ruby ssh_into_ey_cloud.rb [name of environment] | |
=end | |
environment = ARGV[0] | |
def tmux_arguments_for_server(server) | |
"-n #{server[2]} 'ssh #{server[0]}'" | |
end | |
# Check if there's already a tmux session for this environment | |
system("tmux ls 2>/dev/null | grep #{environment}") | |
if $?.exitstatus != 0 | |
# There is not a tmux session for this environment, so create it and ssh into everything | |
raw = `ey servers -u -e #{environment} | grep -v '^#' | grep -v '^Loading application data'` | |
raw_servers = raw.split("\n") | |
servers = raw_servers.map{ |r| r.split("\t").map(&:strip) } | |
first = servers.shift | |
rest = servers | |
`tmux new-session -d -s #{environment} #{tmux_arguments_for_server(first)}` | |
`tmux set-option status-left-length #{environment.length + 2}` | |
rest.each do |server| | |
`tmux new-window -d #{tmux_arguments_for_server(server)}` | |
end | |
end | |
exec "tmux attach-session -t #{environment}" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment