Class: Bolt::Config::Transport::SSH

Inherits:
Base
  • Object
show all
Defined in:
lib/bolt/config/transport/ssh.rb

Constant Summary collapse

OPTIONS =

Options available when using the net-ssh-based transport

%w[
  cleanup
  connect-timeout
  disconnect-timeout
  encryption-algorithms
  extensions
  host
  host-key-algorithms
  host-key-check
  interpreters
  kex-algorithms
  load-config
  login-shell
  mac-algorithms
  password
  port
  private-key
  proxyjump
  script-dir
  tmpdir
  tty
  user
].concat(RUN_AS_OPTIONS).sort.freeze
EXTERNAL_OPTIONS =

Options available when using the external ssh transport

%w[
  cleanup
  copy-command
  host
  host-key-check
  interpreters
  port
  private-key
  script-dir
  ssh-command
  tmpdir
  user
].concat(RUN_AS_OPTIONS).sort.freeze
DEFAULTS =
{
  "cleanup"            => true,
  "connect-timeout"    => 10,
  "disconnect-timeout" => 5,
  "load-config"        => true,
  "login-shell"        => 'bash',
  "tty"                => false
}.freeze

Constants included from Options

Options::LOGIN_SHELLS, Options::RUN_AS_OPTIONS, Options::TRANSPORT_OPTIONS

Instance Attribute Summary

Attributes inherited from Base

#input

Instance Method Summary collapse

Methods inherited from Base

#[], #dig, #fetch, #include?, #merge, options, #resolve, #resolved?, #to_h

Constructor Details

#initialize(data = {}, project = nil) ⇒ SSH

The set of options available for the ssh and external ssh transports overlap, so we need to check which transport is used before fully initializing, otherwise options may not be filtered correctly.



62
63
64
65
66
# File 'lib/bolt/config/transport/ssh.rb', line 62

def initialize(data = {}, project = nil)
  assert_hash_or_config(data)
  @external = true if data['ssh-command']
  super(data, project)
end