This repository is deprecated; please follow the main search page or use the ‘Related code repos’ widget on the right side of the current page.

published

ZTP Dashboard

Dashboard to manage zero touch provisioning configurations and automated upgrades for Cisco IOS XR and Nexus devices

Business/Technical Challenge

The on-boarding of devices into the network can be challenging. It can require manual configuration, and that increases the risk of human error. Upgrading to newer software images can also be quite complex, and testing that everything works as expected is rarely automated.

Tools like Zero Touch Provisioning (ZTP) for XR and Power On Auto-Provisioning (POAP) for Nexus makes this process easier. By automating the on-boarding of devices with these tools, we are able to do the initial software installation and the day-0 configuration without human intervention.

However, configuring ZTP and POAP in your environment requires knowledge around DHCP, HTTP and other tools. Also, if you want to do upgrades for devices already present in the network, you still need to manually save the configuration of the device and do the reboot with the correct options.

Finally, ZTP and POAP do not include automated tests.

Proposed Solution

In order to enable customers to take full advantage of ZTP and POAP, we propose the following application where the these tasks are automated:

  • Setup DHCP server configuration, including options and client identifiers
  • Setup HTTP configuration, where XR and Nexus images will be stored along with day-0 scripts
  • Detection of the different phases for the ZTP and POAP processes
  • Tests (ping or telemetry)
  • Notifications

The solution will help operators to configure HTTP, DHCP or TFTP from a single portal, without the need of extensive knowledge around how these technologies work. Since everything is managed from a single point, alerts with extensive descriptions can be sent to monitoring tools when troubleshooting needs to be done.

Cisco Products Technologies/ Services

The solution will leverage the following Cisco technologies

  • Cisco IOS XR
  • Cisco Nexus
  • Crosswork Situation Manager
  • Webex Teams

Team Members

Solution Components

  • Golang
  • isc-dhcp-server
  • Mongo DB

Usage

At this moment, this tool supports Nexus and XR devices only. Demo at https://youtu.be/No7S-gKHrDU

Installation

The bash script setup.sh under the installation directory can be run to setup the application.
The app assumes that there is a Mongo DB reachable, which is configured via env variables.

Also, you'll need to modify the env file inside the installation directory with the following variables:

# Go related variables, shouldn't need to be changed
export GOPATH=/opt/ztp-go
export GOBIN=$GOPATH/bin
export GOROOT=/usr/local/go
export PATH=$PATH:$GOPATH/bin

# DHCP v4 information export DHCP_NAMESERVERS= export DHCP_SUBNET= export DHCP_SUBNET_NETMASK= export DHCP_CONFIG_PATH=/etc/dhcp/dhcpd.conf export DHCP_SERVICE_RESTART_CMD="systemctl restart isc-dhcp-server"

# DHCP v6 information export DHCP6_NAMESERVERS= export DHCP6_SUBNET= export DHCP6_SUBNET_NETMASK= export DHCP6_CONFIG_PATH=/etc/dhcp/dhcpd6.conf export DHCP6_SERVICE_RESTART_CMD="systemctl restart isc-dhcp-server6"

# Mongo URI to be used by the tool. 127.0.0.1 assumes mongodb is localhost export DB_URI=127.0.0.1

# Port to be listening for incoming web requests export APP_WEB_PORT=8080

# Token to be used when sending notifications export WEBEX_BOT_TOKEN=

# Enable for extra log information export DEBUG=on

Documentation

Documentation around Nexus Power On Auto-Provisioning can be found at https://developer.cisco.com/docs/nx-os/#!poap

Documentation for XR Zero Touch Provisioning can be found at https://xrdocs.io/device-lifecycle/tutorials/2016-08-26-working-with-ztp/#how-ztp-works

License

Provided under Cisco Sample Code License, for details see LICENSE

Code of Conduct

Our code of conduct is available here

Contributing

See our contributing guidelines here

Use Case

Tools like Zero Touch Provisioning (ZTP) for XR and Power On Auto-Provisioning (POAP) for Nexus facilitate the on-boarding of new devices into a network. By automating the on-boarding of devices with these tools, you can perform the initial software installation and upgrades and day-0 configuration without manual intervention, which reduces the risk of human error.

However, configuring ZTP and POAP in your environment requires knowledge of DHCP, HTTP and other tools. If you want to perform upgrades for devices already present in the network, you must manually save the configuration of the device and perform the reboot with the correct options. You should also be aware that ZTP and POAP do not include automated tests.

This application is a dashboard that manages zero touch provisioning configurations and automated upgrades for Cisco IOS XR and Nexus devices. The entry shows how to set up DHCP server and HTTP configurations on the first day of deployment.

Business/Technical Challenge

On-boarding network devices can be challenging. Manual configuration increases the risk of human error. Upgrades to newer software images can also be quite complex, and testing is rarely automated.

Tools like Zero Touch Provisioning (ZTP) for XR and Power On Auto-Provisioning (POAP) for Nexus makes this process easier. By automating the on-boarding of devices with these tools, you can complete initial software installation and the day-0 configuration without human intervention.

However, configuring ZTP and POAP in your environment requires knowledge around DHCP, HTTP, and other tools. Upgrades for existing network devices still require you to manually save the configuration of the device and reboot it with the correct options. And ZTP and POAP do not include automated tests.

Proposed Solution

To enable customers to take full advantage of ZTP and POAP, this application automates these tasks:

  • Set up DHCP server configuration, including options and client identifiers
  • Set up HTTP configuration, where XR and Nexus images will be stored along with day-0 scripts
  • Detection of the different phases for the ZTP and POAP processes
  • Tests (ping or telemetry)

Notifications

The solution helps operators configure HTTP, DHCP or TFTP from a single portal, without requiring extensive technology knowledge. Since everything is managed from a single point, alerts with extensive descriptions can be sent to monitoring tools when troubleshooting is needed.

Cisco Products Technologies/ Services

The solution leverages the following Cisco technologies:

  • Cisco IOS XR
  • Cisco Nexus
  • Crosswork Situation Manager
  • Webex Teams

Documentation

The following documentation is available:

Business Summary
Now you can automate hands-off provisioned network configurations for IOS XR and NXOS

Tutorial

Disclaimer:
Cisco provides Code Exchange for convenience and informational purposes only, with no support of any kind. This page contains information and links from third-party websites that are governed by their own separate terms. Reference to a project or contributor on this page does not imply any affiliation with or endorsement by Cisco.