class EasyAwsSsh::OpsworksSsh

Public Class Methods

new(opsworks_stack_name:, instance_name:) click to toggle source
# File lib/easy_aws_ssh/opsworks_ssh.rb, line 9
def initialize(opsworks_stack_name:, instance_name:)
  @stack_name = opsworks_stack_name
  @instance_name = instance_name

  raise "Invalid stack name, valid stacks are: #{all_stack_names}" unless all_stack_names.include?(opsworks_stack_name)
  raise "Invalid instance name, valid instance names are: #{all_stack_instance_names}" unless all_stack_instance_names.include?(instance_name)
end

Public Instance Methods

ssh() click to toggle source
# File lib/easy_aws_ssh/opsworks_ssh.rb, line 17
def ssh
  exec "ssh #{ENV.fetch('EASY_AWS_SSH_USER', 'ubuntu')}#{certificate}@#{instance_ip}"
end

Private Instance Methods

certificate() click to toggle source
# File lib/easy_aws_ssh/opsworks_ssh.rb, line 23
def certificate
  full_path = "#{ENV.fetch('EASY_AWS_SSH_CERTIFICATE_PATH', '~/.ssh')}/#{ssh_key_name}.pem"
  if File.exist?(full_path)
    " -i #{full_path} "
  end
end