module

Krikri::CliOptions

Run-scoped overrides that come from the command line rather than from the playbook or inventory. Real ansible-playbook exposes most of these as flags whose effect is exactly "set this connection variable for every host", which is how they are applied here too (see #apply_host_overrides in krikri-playbook.cr) - the few that change how ssh itself is invoked are read directly by SSHManager.

A module-level singleton rather than threaded parameters because the ssh-invocation sites are spread across SSHManager and are otherwise unaware of the CLI.

Class methods

extra_scp_args

The same for scp invocations: real Ansible applies --ssh-common-args to scp too (it is the COMMON set), plus --scp-extra-args on top - only --ssh-extra-args is ssh-only.

Source
extra_ssh_args

Extra ssh arguments contributed by --ssh-common-args and --ssh-extra-args, split the way a shell would (real Ansible passes these through to ssh as a raw argument string).

Source
scp_extra_args
Source
scp_extra_args=(scp_extra_args : String | Nil)
Source
sftp_extra_args
Source
sftp_extra_args=(sftp_extra_args : String | Nil)
Source
ssh_common_args

--ssh-common-args / --ssh-extra-args, appended verbatim to every ssh invocation; --scp-extra-args likewise to every scp one.

KNOWN_MISSING.md used to record --scp-extra-args as "accepted and stored, but nothing to attach to - this engine moves files over ssh plus a piped stream rather than shelling out to scp". That was wrong on its own facts: SSHManager#upload_file/#download_file are real scp invocations, and PluginManager falls back to scp for the plugin-binary push whenever rsync is unavailable on the target. So the flag now takes effect on exactly those, the way real Ansible applies it to its own scp transfers.

--sftp-extra-args stays accepted-and-inert, and that one IS correct by construction: nothing here ever invokes sftp, so, as with real Ansible under a non-sftp transfer method, there is no sftp command line for it to extend.

Source
ssh_common_args=(ssh_common_args : String | Nil)

--ssh-common-args / --ssh-extra-args, appended verbatim to every ssh invocation; --scp-extra-args likewise to every scp one.

KNOWN_MISSING.md used to record --scp-extra-args as "accepted and stored, but nothing to attach to - this engine moves files over ssh plus a piped stream rather than shelling out to scp". That was wrong on its own facts: SSHManager#upload_file/#download_file are real scp invocations, and PluginManager falls back to scp for the plugin-binary push whenever rsync is unavailable on the target. So the flag now takes effect on exactly those, the way real Ansible applies it to its own scp transfers.

--sftp-extra-args stays accepted-and-inert, and that one IS correct by construction: nothing here ever invokes sftp, so, as with real Ansible under a non-sftp transfer method, there is no sftp command line for it to extend.

Source
ssh_extra_args
Source
ssh_extra_args=(ssh_extra_args : String | Nil)
Source
step=(step : Bool)

--step: prompt before each task.

Source
step?

--step: prompt before each task.

Source
timeout

-T/--timeout: ssh ConnectTimeout, in seconds. Real Ansible's default is 10, which is what this engine hardcoded before.

Source
timeout=(timeout : Int32)

-T/--timeout: ssh ConnectTimeout, in seconds. Real Ansible's default is 10, which is what this engine hardcoded before.

Source