Installing NSO

I’ve been wanting to test Cisco’s NSO for a long time now and finally had some spare time to try and get it up and running on a local VM. It’s free for non-production use now so go ahead and grab it over at (available for both MacOS & Linux).

I installed Ubuntu 18.04 LTS on a fresh vmbox (I didn’t manage to get it working on a raspberry), the only other pre-requirements NSO has is:

  • Java JDK-7.0 or higher
  • Ant
  • python2 or python3
  • python-paramiko

To make life simpler I also installed python3-pip

$ sudo apt-get install python3-pip
$ sudo apt-get install default-jdk
$ sudo apt-get install ant
$ pip3 install paramiko
$ java -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment (build 11.0.2+9-Ubuntu-3ubuntu118.04.3)
OpenJDK 64-Bit Server VM (build 11.0.2+9-Ubuntu-3ubuntu118.04.3, mixed mode, sharing)

I then downloaded the file nso-4.7.linux.x86_64.signed.bin from Cisco, installation was actually much more simpler than I had imagined.

joco02 at labb-nso in ~/Downloads
$ ls

$ sh nso-4.7.linux.x86_64.signed.bin --skip-verification

joco02 at labb-nso in ~/Downloads
$ ls  nso-4.7.linux.x86_64.installer.bin  nso-4.7.linux.x86_64.installer.bin.signature  nso-4.7.linux.x86_64.signed.bin  README.signature  tailf.cer

joco02 at labb-nso in ~/Downloads
$ sh nso-4.7.linux.x86_64.installer.bin $HOME/ncs-4.7 --local-install
INFO  Using temporary directory /tmp/ncs_installer.41189 to stage NCS installation bundle
INFO  Unpacked ncs-4.7 in /home/joco02/ncs-4.7
INFO  Found and unpacked corresponding DOCUMENTATION_PACKAGE
INFO  Found and unpacked corresponding EXAMPLE_PACKAGE
INFO  Generating default SSH hostkey (this may take some time)
INFO  SSH hostkey generated
INFO  Environment set-up generated in /home/joco02/ncs-4.7/ncsrc
INFO  NCS installation script finished
INFO  Found and unpacked corresponding NETSIM_PACKAGE
INFO  NCS installation complete

When then have to source our new folder to enable built-in variables and then setup our environment.

joco02 at labb-nso in ~/Downloads
$ source $HOME/ncs-4.7/ncsrc
$ ncs-setup --dest $HOME/ncs-run

That should be everything, we can now start NSO:

$ ncs

To check status we can use:

joco02 at labb-nso in ~/ncs-run
$ ncs --status | grep status
status: started

joco02 at labb-nso in ~/ncs-run
$ ncs --version

We should now also be able to reach NSO’s GUI/Webpage for administration at http://serverip:8080/login.html

Login credentials are admin / admin

If your like me and allergic to GUIs we can also connect to the CLI instead.

joco02 at labb-nso in ~/ncs-4.7
$ ncs_cli -u admin

admin connected from using ssh on labb-nso
admin@ncs> ?
Possible completions:
  clear      - Clear parameter
  compare    - Compare running configuration to another configuration or a file
  configure  - Manipulate software configuration information
  describe   - Display transparent command information
  exit       - Exit the management session
  file       - Perform file operations
  help       - Provide help information
  id         - Show user id information
  monitor    - Real-time debugging
  ping       - Ping a host
  ping6      - Ping an ipv6 host
  quit       - Exit the management session
  request    - Make system-level requests
  script     - Script actions
  set        - Set CLI properties
  set-path   - Set relative show path
  show       - Show information about the system
  source     - File to source
  switch     - Change CLI style
  templatize - Find patterns in subtree.
  top        - Exit to top level and optionally run command
  traceroute - Trace the route to a remote host
  up         - Exit one level of configuration

We should now be able to do some labs on NSO! 🙂 Cisco luckily provides a few “Network Elements Drivers” for their netsim-devices for lab purposes, if you want to manage your own devices (real/virtual) you will have to buy a license for it as I understand it.

joco02 at labb-nso in ~/ncs-4.7/packages/neds
$ ls
 a10-acos  cisco-ios  cisco-iosxr  cisco-nx  dell-ftos  juniper-junos