class Moonshot::SSHCommandBuilder
Create an ssh command from configuration.
Constants
- Result
Public Class Methods
new(ssh_config, instance_id)
click to toggle source
# File lib/moonshot/ssh_command_builder.rb, line 8 def initialize(ssh_config, instance_id) @config = ssh_config @instance_id = instance_id end
Public Instance Methods
build(command = nil)
click to toggle source
# File lib/moonshot/ssh_command_builder.rb, line 13 def build(command = nil) cmd = ['ssh', '-t'] cmd << "-i #{@config.ssh_identity_file}" if @config.ssh_identity_file cmd << "-l #{@config.ssh_user}" if @config.ssh_user cmd << instance_ip cmd << Shellwords.escape(command) if command Result.new(cmd.join(' '), instance_ip) end
Private Instance Methods
instance_ip()
click to toggle source
# File lib/moonshot/ssh_command_builder.rb, line 24 def instance_ip @instance_ip ||= Aws::EC2::Client.new .describe_instances(instance_ids: [@instance_id]) .reservations.first.instances.first.public_ip_address rescue raise "Failed to determine public IP address for instance #{@instance_id}!" end