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
 https://developer.cisco.com/site/nso/ (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
1
2
3
4
5
6
7
8
9
10
$ 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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
joco02 at labb-nso in ~/Downloads
$ ls
nso-4.7.linux.x86_64.signed.bin
$ sh nso-4.7.linux.x86_64.signed.bin --skip-verification
Unpacking...
joco02 at labb-nso in ~/Downloads
$ ls
cisco_x509_verify_release.py  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.
1
2
3
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 with ncs.
To check status we can use:
1
2
3
4
5
6
7
    joco02 at labb-nso in ~/ncs-run
    $ ncs --status | grep status
    status: started
    
    joco02 at labb-nso in ~/ncs-run
    $ ncs --version
    4.7
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.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
joco02 at labb-nso in ~/ncs-4.7
$ ncs_cli -u admin
admin connected from 192.168.15.188 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 Driver” 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.
1
2
3
joco02 at labb-nso in ~/ncs-4.7/packages/neds
$ ls
  a10-acos  cisco-ios  cisco-iosxr  cisco-nx  dell-ftos  juniper-junos
 
