class fabric.config.Config(*args, **kwargs)

An invoke.config.Config subclass with extra Fabric-related behavior.

This class behaves like invoke.config.Config in every way, with the following exceptions:

  • its global_defaults staticmethod has been extended to add/modify some default settings (see its documentation, below, for details);
  • it triggers loading of Fabric-specific env vars (e.g. FABRIC_RUN_HIDE=true instead of INVOKE_RUN_HIDE=true) and filenames (e.g. /etc/fabric.yaml instead of /etc/invoke.yaml).
  • it extends the API to account for loading ssh_config files (which are stored as additional attributes and have no direct relation to the regular config data/hierarchy.)

Intended for use with Connection, as using vanilla invoke.config.Config objects would require users to manually define port, user and so forth.

New in version 2.0.

__init__(*args, **kwargs)

Creates a new Fabric-specific config object.

For most API details, see invoke.config.Config.__init__. Parameters new to this subclass are listed below.

  • ssh_config – Custom/explicit paramiko.config.SSHConfig object. If given, prevents loading of any SSH config files. Default: None.
  • runtime_ssh_path (str) – Runtime SSH config path to load. Prevents loading of system/user files if given. Default: None.
  • system_ssh_path (str) – Location of the system-level SSH config file. Default: /etc/ssh/ssh_config.
  • user_ssh_path (str) – Location of the user-level SSH config file. Default: ~/.ssh/config.
  • lazy (bool) – Has the same meaning as the parent class’ lazy, but additionall controls whether SSH config file loading is deferred (requires manually calling load_ssh_config sometime.) For example, one may need to wait for user input before calling set_runtime_ssh_path, which will inform exactly what load_ssh_config does.
static global_defaults()

Default configuration values and behavior toggles.

Fabric only extends this method in order to make minor adjustments and additions to Invoke’s global_defaults; see its documentation for the base values, such as the config subtrees controlling behavior of run or how tasks behave.

For Fabric-specific modifications and additions to the Invoke-level defaults, see our own config docs at Default configuration values.

New in version 2.0.


Load SSH config file(s) from disk.

Also (beforehand) ensures that Invoke-level config re: runtime SSH config file paths, is accounted for.

New in version 2.0.


Configure a runtime-level SSH config file path.

If set, this will cause load_ssh_config to skip system and user files, as OpenSSH does.

New in version 2.0.