Configuration
The configuration is comprised of a set of sections and parameters for those sections. You can set the configuration programmatically using nornir by passing a dictionary of options for each section, by using a YAML file, by setting the corresponding environment variables or by a combination of the three. The order of preference from less to more preferred is “configuration file” -> “env variable” -> “code”.
An example using InitNornir would be:
nr = InitNornir(
core={"num_workers": 20},
logging={"file": "mylogs", "level": "debug"}
)
A similar example using a yaml file:
---
inventory:
plugin: SimpleInventory
options:
host_file: "advanced_filtering/inventory/hosts.yaml"
group_file: "advanced_filtering/inventory/groups.yaml"
Logging
By default, Nornir automatically configures logging when InitNornir is called. Logging configuration can be modified and available options are described in the section below. If you want to use Python logging module to configure logging, make sure to set logging.enabled parameter to False in order to avoid potential issues.
Next, you can find each section and their corresponding options.
core
raise_on_error
| Description |
If set to True, (nornir.core.Nornir.run) method of will raise exception nornir.core.exceptions.NornirExecutionError if at least a host failed |
| Type |
boolean |
| Default |
False |
| Required |
False |
| Environment Variable |
NORNIR_CORE_RAISE_ON_ERROR |
runner
plugin
| Description |
Plugin to use as Runner. Must be registered |
| Type |
string |
| Default |
Threaded |
| Required |
False |
| Environment Variable |
NORNIR_RUNNER_PLUGIN |
options
| Description |
kwargs to pass to the plugin |
| Type |
object |
| Default |
{} |
| Required |
False |
| Environment Variable |
NORNIR_RUNNER_OPTIONS |
inventory
plugin
| Description |
Plugin to use. Must be registered |
| Type |
string |
| Default |
SimpleInventory |
| Required |
False |
| Environment Variable |
NORNIR_INVENTORY_PLUGIN |
options
| Description |
kwargs to pass to the plugin |
| Type |
object |
| Default |
{} |
| Required |
False |
| Environment Variable |
NORNIR_INVENTORY_OPTIONS |
ssh
config_file
| Description |
Path to ssh configuration file |
| Type |
string |
| Default |
~/.ssh/config |
| Required |
False |
| Environment Variable |
NORNIR_SSH_CONFIG_FILE |
logging
enabled
| Description |
Whether to configure logging or not |
| Type |
boolean |
| Default |
None |
| Required |
False |
| Environment Variable |
NORNIR_LOGGING_ENABLED |
level
| Description |
Logging level |
| Type |
string |
| Default |
INFO |
| Required |
False |
| Environment Variable |
NORNIR_LOGGING_LEVEL |
log_file
| Description |
Logging file |
| Type |
string |
| Default |
nornir.log |
| Required |
False |
| Environment Variable |
NORNIR_LOGGING_FILE |
to_console
| Description |
Whether to log to console or not |
| Type |
boolean |
| Default |
False |
| Required |
False |
| Environment Variable |
NORNIR_LOGGING_TO_CONSOLE |
loggers
| Description |
Loggers to configure |
| Type |
array |
| Default |
['nornir'] |
| Required |
False |
| Environment Variable |
NORNIR_LOGGING_LOGGERS |
user_defined
You can set any <k, v> pair you want here and you will have it available under your configuration object, i.e. nr.config.user_defined.my_app_option.