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

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

Constant Summary collapse

OPTIONS =
{
  "connect-timeout"    => { type: Integer,
                            desc: "How long to wait when establishing connections." },
  "disconnect-timeout" => { type: Integer,
                            desc: "How long to wait before force-closing a connection." },
  "host"               => { type: String,
                            desc: "Host name." },
  "host-key-check"     => { type: TrueClass,
                            desc: "Whether to perform host key validation when connecting." },
  "interpreters"       => { type: Hash,
                            desc: "A map of an extension name to the absolute path of an executable, "\
                                  "enabling you to override the shebang defined in a task executable. The "\
                                  "extension can optionally be specified with the `.` character (`.py` and "\
                                  "`py` both map to a task executable `task.py`) and the extension is case "\
                                  "sensitive. When a target's name is `localhost`, Ruby tasks run with the "\
                                  "Bolt Ruby interpreter by default." },
  "load-config"        => { type: TrueClass,
                            desc: "Whether to load system SSH configuration." },
  "password"           => { type: String,
                            desc: "Login password." },
  "port"               => { type: Integer,
                            desc: "Connection port." },
  "private-key"        => { desc: "Either the path to the private key file to use for authentication, or a "\
                                  "hash with the key `key-data` and the contents of the private key." },
  "proxyjump"          => { type: String,
                            desc: "A jump host to proxy connections through, and an optional user to "\
                                  "connect with." },
  "run-as"             => { type: String,
                            desc: "A different user to run commands as after login." },
  "run-as-command"     => { type: Array,
                            desc: "The command to elevate permissions. Bolt appends the user and command "\
                                  "strings to the configured `run-as-command` before running it on the "\
                                  "target. This command must not require an interactive password prompt, "\
                                  "and the `sudo-password` option is ignored when `run-as-command` is "\
                                  "specified. The `run-as-command` must be specified as an array." },
  "script-dir"         => { type: String,
                            desc: "The subdirectory of the tmpdir to use in place of a randomized "\
                                  "subdirectory for uploading and executing temporary files on the "\
                                  "target. It's expected that this directory already exists as a subdir "\
                                  "of tmpdir, which is either configured or defaults to `/tmp`." },
  "sudo-executable"    => { type: String,
                            desc: "The executable to use when escalating to the configured `run-as` "\
                                  "user. This is useful when you want to escalate using the configured "\
                                  "`sudo-password`, since `run-as-command` does not use `sudo-password` "\
                                  "or support prompting. The command executed on the target is "\
                                  "`<sudo-executable> -S -u <user> -p custom_bolt_prompt <command>`. "\
                                  "**This option is experimental.**" },
  "sudo-password"      => { type: String,
                            desc: "Password to use when changing users via `run-as`." },
  "tmpdir"             => { type: String,
                            desc: "The directory to upload and execute temporary files on the target." },
  "tty"                => { type: TrueClass,
                            desc: "Request a pseudo tty for the session. This option is generally "\
                                  "only used in conjunction with the `run-as` option when the sudoers "\
                                  "policy requires a `tty`." },
  "user"               => { type: String,
                            desc: "Login user." }
}.freeze
DEFAULTS =
{
  "connect-timeout"    => 10,
  "tty"                => false,
  "load-config"        => true,
  "disconnect-timeout" => 5
}.freeze

Instance Attribute Summary

Attributes inherited from Base

#input

Method Summary

Methods inherited from Base

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

Constructor Details

This class inherits a constructor from Bolt::Config::Transport::Base