Class: Ctrl::SshCommand

Inherits:
Object
  • Object
show all
Includes:
Virtus::Model
Defined in:
lib/ctrl/ssh_command.rb

Constant Summary collapse

NAT_USER =
ENV['CTRL_SSH_NAT_USER'] || 'ec2_user'
SSH_USER =
ENV['CTRL_SSH_USER'] || 'ubuntu'

Instance Method Summary collapse

Instance Method Details

#direct_cmdObject



15
16
17
# File 'lib/ctrl/ssh_command.rb', line 15

def direct_cmd
  "ssh -A #{SSH_USER}@#{nat_instance.public_ip_address}"
end

#proxied_cmdObject



19
20
21
# File 'lib/ctrl/ssh_command.rb', line 19

def proxied_cmd
  "ssh -A -t #{NAT_USER}@#{nat_instance.public_ip_address} \"ssh #{SSH_USER}@#{target_instance.private_ip_address}\""
end

#target_is_nat?Boolean

Returns:

  • (Boolean)


11
12
13
# File 'lib/ctrl/ssh_command.rb', line 11

def target_is_nat?
  nat_instance.instance_id == target_instance.instance_id
end

#to_sObject



23
24
25
26
# File 'lib/ctrl/ssh_command.rb', line 23

def to_s
  return direct_cmd if target_is_nat?
  proxied_cmd
end