Skip to main content

Nokia SR OS pySROS Plugins for Nornir

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nornir_nokia-0.1.0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nornir_nokia-0.1.0-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file nornir_nokia-0.1.0.tar.gz.

File metadata

  • Download URL: nornir_nokia-0.1.0.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for nornir_nokia-0.1.0.tar.gz
Algorithm Hash digest
SHA256 62ff017b3ebae2d3cd3b9c95429a04acc277bcf90ecd1b6e7bdce1708116ef23
MD5 7238665bbc6505a135c62afe8023835b
BLAKE2b-256 ab480333b28fdcb29721dcddbd3eb35785643b5a1532faff7ebbdc110b9e19b4

See more details on using hashes here.

File details

Details for the file nornir_nokia-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: nornir_nokia-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for nornir_nokia-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d79e9060d5a59f25698ec23946e31422b90789b5b2bd6c184b64598a21560469
MD5 442994facc73a8373ae89d1b16a5452f
BLAKE2b-256 15ed2801ef2a57f261dc31f227d0c613cb4bb7326ba5c95ff6f4840e16a24faa

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page