Model-driven command line interface (MD-CLI) in Nokia SR OS 16.0

Anton Karneliuk. IT & Network Expert / Architect / Manager; Project Manager; Entrepreneur; 2x CCIE (RS/SP) #49412; MSc Telecommunications.

Leave a Reply

Comment as a guest.

  1. Hi,
    Thanks this interesting first review of MD-CLI.
    I’ve performed some tests with this new 16.0 release and ansible SROS modules: Compatibility seems to be broken. For instance, sros_config with the “lines” and “parents” are not working anymore: commands entered in disorder, do we have to specified the edit-config mode (exclusive, …) ? … I currently don’t know if Nokia planned to proposed new SROS ansible module for that.

    1. Hi Cyrille,

      There are different options for device management. If you use “model-driven”, then you need to use new commands. Alternatively, you can use “mixed” mode so that both old and new commands are working into different CLI modes. The third point is that you can adapt sros_config module, if you the first command in lines is: “/edit-config global”


    1. Hello Gabriel,

      From my perspective the single cons is that if you have some CLI-based automation, you will need to rework it. I find MD-CLI is cleaner and less error-prone.


  2. Is there a way id SR-OS to show particular part of configuration without entering config mode? In Junos you can do “show configuration “

    1. Hello Andrey,

      you have to enter the config mode as that is considered to be a security measure. From the first stage of config mode you could see any configuration further.


  3. Is there anyway to pull the flat config that md-cli outputs? I have a tasks but it doesn’t pull any data.
    – name: Try MD CLI
    – info flat | no-more
    – //
    – configure global
    register: flat

    – name: Debug flat
    msg: “{{ flat }}”
    TASK [Try MD CLI] **********************************************************************************************************
    changed: [msr1] => {
    “changed”: true,
    “commands”: [
    “configure global”,
    “info flat | no-more”
    “updates”: [
    “configure global”,
    “info flat | no-more”

    TASK [Debug flat] **********************************************************************************************************
    ok: [msr1] => {}


    {‘failed’: False, u’commands’: [u’//’, u’configure global’, u’info flat | no-more’], u’changed’: True, u’updates’: [u’//’, u’configure global’, u’info flat | no-more’]}

Read Next

Sliding Sidebar