Multivendor support

Hi All,
I tried searching for multivendor support using Nornir. I could see cisco, arista. Can anyone help if I can use nornir for Nokia SR7750 devices.
Thanks

Hello @DeshpandeSoham,

Not sure but it should be.

As you can see in the docs, Netmiko commands can be used under Nornir to connect to equipments.

I personnally use netmiko to connect to Nokia SR7750 devices.

Regards,
Tras

1 Like

Hi @Trasmontinho,

I’m trying to get data from a Nokia SROS device, and i’ve tried using netmiko to connect to those kind of devices from nornir, but it seems that i’m not finding a way to work.
I have tried to include netmiko under connection_options, but I’ll have to pass additional parameters (does not work in blank).

  • groups.yaml
nokia:
  platform: nokia_sros
  connection_options:
    netmiko:

This config returns:

     24     for cn, c in data.items():
     25         cp[cn] = ConnectionOptions(
---> 26             hostname=c.get("hostname"),
     27             port=c.get("port"),
     28             username=c.get("username"),

AttributeError: 'NoneType' object has no attribute 'get'

Putting an argument, such as port number, does not make it work.
Could you please provide an example of a working connection from nornir using netmiko or napalm to a Nokia SROS device?

Thanks!

1 Like

Hello,

could you specify which version of Nornir you’re using ?

Normally you shouldn’t need to specify in the connection options netmiko to make it works.

As I’m not in front of my codes I’ll share with you some examples tomorrow.

Regards,

Tras

I’m using nornir 3.0.0
Wow, Nornir is now at release 3.0! How time flies!
Thanks!

Hello,

So basically below a short example of what I’ve implemented and works with netmiko. My login/pwd are in the defaults.yaml :slightly_smiling_face:

from nornir import InitNornir
from nornir_netmiko.tasks import netmiko_send_command
from nornir_utils.plugins.functions import print_result
from nornir.core.task import Result, Task

def main():

nr = InitNornir('config.yaml')  

result = nr.run(

task=netmiko_send_command,

command_string="show version"

)

print_result(result)

my hosts.yaml contains that config for the example :
nokiarouter:
hostname: nokiarouter
platform: alcatel_sros

python3.8 check_nokia.py
netmiko_send_command************************************************************

  • nokiarouter ** changed : False *************************************************
    vvvv netmiko_send_command ** changed : False vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv INFO
    TiMOS-C-16.0.R4-2 cpm/hops64 Nokia 7750 SR Copyright © 2000-2019 Nokia.
    All rights reserved. All use subject to applicable license agreements.
    Built on Fri Jan 25 16:42:58 PST 2019 by builder in /builds/c/160B/R4-2/panos/main
    ^^^^ END netmiko_send_command ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1 Like

Hello @another_two,

Is the response that I maid answers to your issue ?

Regards,

Tras

1 Like

Thanks! I will give it a try with platform: alcatel_sros

Hey guys,

You might want to have a look at SROS Napalm module to get info from SROS nodes, works pretty well!

And also, if this can be of any help for you guys, here is a working example to create/delete Ports/SAPs/VPLS through Nornir Scrapli Netconf:

1 Like

Hey I’ve seen that.

It’s interesting but R19 is a must have in the case you would like to use netconf with Nokia. The previous releases support a few part of the available parameters (in CLI) with netconf.

Hey there,

There are 2 YANG models for SROS.
R13 models work since R15, and we have been using this for a couple of years now through Netconf without any issue. These models are in fact the equivalent of just passing out CLI to the node.

For instance if you want to configure a SAP on a dot1q port, then the port has to be configured first as you would through CLI. You also can’t use candidate datastore.

If you want to use Nokia models, I think it is even recommended to use R20 since it is very tied to model driven CLI. We are going to shift to R20 next year, implementeing MDCLI and using the new models. R16 supports Nokia YANG models but its use in production was very controlled by Nokia and indeed did not cover all config possibilities.

HTH.

J.

Hey @JulienMC98,

Thanks for the feedback. So if I’ve understood what you’re saying, all the configuration elements that are in CLI, they’re available in R15 ? I thought that only a part of the parameters were available in those versions. I’m maybe mixing it with model driven stuff :slight_smile:

Hey @Trasmontinho,

Can’t say 100% sure but yeah from what I remember when I discussed with Nokia people, classic CLI is fully supported since R15.

We first used Ansible with netconf_config module after discussing with Sven from Nokia (https://github.com/nokia/ansible-networking-collections), and now migrating to Nornir/Scrapli as it is faster/simpler to code directly in Python.

Dunno what SROS release you are running, but it is obviously best to upgrade instead of staying in R15. In our network, we have old SRc12 kits that don’t run SROS past R16 on which we will stick to CLI R13 Netconf, but will definitely move to MDCLI/Nokia YANG models on all the other nodes that support it.