Ansible role for Cisco Network Services Orchestrator (NSO) Local installation
- Execute NSO Local installation
- Include external YANG files
- Create NSO runtime environment
- Customize the runtime configuration
- Automatically build and load NED's
- Create, customize, and load NSO NETSIM's
- Configure NSO CDB
- The use of this role assumes the user can obtain the appropriate binaries as noted in Prerequisites
- Evaluation copies for NSO & various NSO NED's can be found on DevNet
- Ansible
- Ansible >= 2.9.1 (might work with earlier versions, but not tested)
- NSO
- Python 3
- Operating System requirements as described on DevNet (Java + Ant)
- NOTE: If
Java
orAnt
binaries are installed in a location other than the default, you can change the respectivejava_binary
orant_binary
variables in vars - NOTE: Assumes the target host has
build-essentials
(gcc, make, etc.) andxsltproc
installed
- NOTE: If
- NSO Signed Binary (*.signed.bin)
- The NSO signed binary must be placed within the (
files
) folder
- The NSO signed binary must be placed within the (
- NED Signed Binaries (*.signed.bin)
- The NED signed binaries must be placed within the (
files
) folder
- The NED signed binaries must be placed within the (
- 5.5
All variables which can be overridden are stored in various files within defaults/main
Setup (setup.yml)
These variables are directly related to running the NSO Local installation and NSO Runtime environment
Name | Default | Description |
---|---|---|
nso_root_dir |
"~/nso" | Root path to directory where the NSO installation, runtime, external YANG files, and NETSIM will reside. In other words, nso_install_dir , nso_runtime_dir , nso_yang_dir , and nso_netsim_dir are all derived from this variable within vars/main.yml. |
nso_yang_files |
[] | External YANG files (i.e.; those not included as part of NSO installation) to be installed. Examples provided in the file. |
NETSIM (netsim-vars.yml)
These variables are directly related to the creation of NETSIM devices
Name | Default | Description |
---|---|---|
nso_netsim |
[] | List of NETSIM devices to be created. Allows specifying the number of NETSIM devices per type, number of GigabitEthernet, and number of TenGigabitEthernet interfaces. |
Runtime Configuration (nso-runtime-config.yml)
These variables are directly related to the parameters used to construct the NSO runtime configuration, ncs.conf
, abstracted from the various 'Configuration Parameters' found in the NSO Manual Pages.
Name | Default | Description |
---|---|---|
nso_config_hide_group |
[] | Corresponds to the /ncs-config/hide-group section. |
nso_config_rollback |
{} | Corresponds to the /ncs-config/rollback section. |
nso_config_cli |
{} | Corresponds to the /ncs-config/cli section. |
nso_config_webui_tcp |
{} | Corresponds to the /ncs-config/webui/transport/tcp section. |
nso_config_webui_ssl |
{} | Corresponds to the /ncs-config/webui/transport/ssl section. |
nso_config_restconf |
{} | Corresponds to the /ncs-config/restconf section. |
CDB Configuration (nso-config.yml)
These variables are directly related to configuration than can be applied to the NSO CDB
Name | Default | Description |
---|---|---|
nso_customers |
[] | Corresponds to the /ncs:customers/ncs:customer configuration. |
---
- name: NSO Local Installation
hosts: all
gather_facts: yes
vars:
nso_root_dir: "~/nso"
nso_yang_files:
- name: "ietf-routing-types.yang"
uri: "https://raw.githubusercontent.com/YangModels/yang/master/standard/ietf/RFC/ietf-routing-types%402017-12-04.yang"
nso_netsim:
- type: iosxr
type_count: 3
type_count_gige: 2
type_count_tengige: 2
nso_config_hide_group:
- name: debug
nso_config_rollback:
enabled: true
directory: ./logs
history_size: 500
rollback_numbering: rolling
nso_config_cli:
rollback_numbering: rolling
nso_config_webui_ssl:
enabled: true
ip: 0.0.0.0
port: 8888
key_file: ${NCS_DIR}/var/ncs/webui/cert/host.key
cert_file: ${NCS_DIR}/var/ncs/webui/cert/host.cert
nso_customers:
- id: Disneyland
- id: Universal
tasks:
- name: Setup NSO
include_role:
name: dbono711.ansible_nso_local_install
tags:
- "always"
Testing is accomplished with Molecule. After installing Molecule in your local environment, you can execute the complete test suite via:
molecule test
- Darren Bono - darren.bono@att.net
This project is licensed under the MIT License. See LICENSE for details