nornir_nokia
Nokia SR OS pySROS Plugins for Nornir - supports both YANG model-driven and MD-CLI interactions with Nokia BNG devices.
Installation
pip install nornir_nokia
Features
- Connection Plugin: Manages pySROS NETCONF connections to Nokia SR OS devices
- CLI Connection Plugin: Manages Netmiko CLI SSH sessions via Nornir
- YANG Configuration: Configure devices using YANG model-driven paths (
candidate.set) - CLI Configuration: Configure devices using MD-CLI commands via Netmiko
- Get Data: Retrieve operational/configuration data via YANG paths or CLI commands
- Commit Operations: commit, commit confirm (with timer), compare, discard, rollback (cancel), lock/unlock
Usage
Inventory (hosts.yaml)
nokia_bng_01:
hostname: 192.168.1.1
username: admin
password: admin
port: 830
platform: nokia_sros
connection_options:
nornir_nokia:
extras:
yang_directory: ./YANG
hostkey_verify: false
timeout: 300
nornir_nokia_cli:
extras:
cli_port: 22
timeout: 90
fast_cli: false
YANG Configuration
from nornir import InitNornir
from nornir_nokia.tasks import nokia_yang_config, nokia_commit
nr = InitNornir(config_file="config.yaml")
# Set configuration via YANG
result = nr.run(
task=nokia_yang_config,
path='/nokia-conf:configure/system/name',
value='my-router',
commit=False,
)
# Compare candidate vs baseline
result = nr.run(task=nokia_commit, action="compare", output_format="md-cli")
# Commit with confirmation timer
result = nr.run(task=nokia_commit, action="commit", timer=60)
# Confirm commit (accept)
result = nr.run(task=nokia_commit, action="commit")
# Rollback (cancel confirmed commit)
result = nr.run(task=nokia_commit, action="rollback")
CLI Configuration
from nornir_nokia.tasks import nokia_cli_config, nokia_get
# Configure via MD-CLI
result = nr.run(
task=nokia_cli_config,
commands=[
'/configure system name "my-router"',
'/configure router interface "demo1" ipv4 primary address 192.168.1.1 prefix-length 24',
],
mode="commit",
comment="deploy via nornir",
)
# Compare candidate changes without committing
result = nr.run(
task=nokia_cli_config,
config='''
/configure system location "nornir-compare"
''',
mode="compare",
)
# Confirmed commit with timer
result = nr.run(
task=nokia_cli_config,
commands=['/configure system contact "nornir-confirmed"'],
mode="commit",
timer=120,
)
# Get operational data via CLI
result = nr.run(task=nokia_get, command='show version')
# Get data via YANG path
result = nr.run(task=nokia_get, path='/nokia-state:state/system/oper-name')
License
MIT
Metadata
Release files for nornir-nokia 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| nornir_nokia-0.1.3.tar.gz | 11.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| nornir_nokia-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.1 kB
Release files / nornir_nokia-0.1.3.tar.gz
| Download URL | nornir_nokia-0.1.3.tar.gz |
|---|---|
| Size | 11.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
73a0df16d8f5b4ffa035b21698cd7e54bd102b9682a1ffce084c9bc6d0c46449
|
|
BLAKE2b-256 checksum How to use checksums |
05b80427c32710f4614e1e5fcd5a56a9ee83654bb1c8ea8a86bf46b7bd3faa62
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / nornir_nokia-0.1.3-py3-none-any.whl
| Download URL | nornir_nokia-0.1.3-py3-none-any.whl |
|---|---|
| Size | 12.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3d168215de0ef40e3ee822de7c9fa45157e44a562bba6123433bf45204a40faf
|
|
BLAKE2b-256 checksum How to use checksums |
572dad69b87b5b84fa1d3a8485def1189f9795e929c1e088c0cc0b973c55fbd2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|