Date created: Thursday, June 23, 2022 10:10:11 AM. Last modified: Thursday, June 23, 2022 10:22:42 AM
Nornir - Hello World
config.yaml
--- inventory: plugin: SimpleInventory options: host_file: "hosts.yaml" runner: plugin: threaded options: num_workers: 1 logging: enabled: True
hosts.yaml
Note: After much trial and error, the below works but removing extras and everything doesn't, and extra's can't be empty, and option_args can't be empty. Also the password must have a password defined or it must be added to the config passed to Nornir before the connection attempt, it won't prompty for a password if none is specified, it will just try and connect with no password and fail, and throws a non-descript error.
--- lab01: hostname: 192.0.2.1 username: user.name.here password: abc123 port: 22 platform: iosxr connection_options: napalm: extras: optional_args: dummy: foo
Potential option_args are:
allow_agent: False ssh_strict: False ssl_verify: False use_keys: False look_for_keys: False timeout: 20 auth_timeout: 20 banner_timeout: 20 conn_timeout: 20 fallback: False
nornir_test.py
#!/usr/bin/env python3 """ pip install nornir nornir_utils nornir_napalm invoke """ from nornir import InitNornir from nornir.core.task import Task, Result from nornir_utils.plugins.functions import print_result from nornir_napalm.plugins.tasks import napalm_get, napalm_cli import logging logging.basicConfig(filename='test.log', level=logging.DEBUG) logger = logging.getLogger("netmiko") nr = InitNornir(config_file="config.yaml") print(nr.inventory.hosts) results = nr.run( task=napalm_cli, commands=["show version"] ) print_result(results)
Previous page: Netlab Notes
Next page: Running Parallel Commands via SSH