NetDevOps Labs

Documentation Status

Sample code, examples, and resources for use with the DevNet Multi-IOS Sandbox

tile

Reserve a sandbox lab

You can reserve a sandbox lab here. During the reservation, you can select "None" for
simulation, as we will be launching the required topologies as part of the setup.

It takes about 15 minutes to spin up the VIRL servers and your devbox. Hang tight and do some emails.

reservation

Setup

Here's a video overview of the process... from here feel free to press fast forward in the middle...

asciicast

Detailed instructions

Step 1. Connect to devbox

After your reservation is complete you will receive and email with credential to
connect to the sandbox via VPN. Once connected you can ssh to the devbox using the following credentials: developer/C1sco12345

ssh developer@10.10.20.50

Step 2: Clone this repository

git clone --recurse-submodules https://github.com/DevNetSandbox/sbx_multi_ios.git

Step 3: Setup GitLab

cd sbx_multi_ios/gitlab
./setup.sh

Step 3a: Refill your drink

Seriously, this is going to take like 5 minutes...

Step 4: Start the CICD setup

cd sbx_multi_ios/cicd-3tier
./setup.sh

Step 4a: Check your email

Seriously, this is going to take like 10 minutes...

Step 5: Have Fun!

What's here

A number of different lab environments that can be quickly stood up.

  • GitLab Community Edition - Add version control and CI/CD to your sandbox. Recommend starting here, as it's used in some of the others... don't worry it only takes a few minutes for us to set it up for you.

  • Network CI/CD Pipeline - A core-distribution-access network with a CICD pipeline including GitLab, VIRL, pyATS, and NSO. Now we're having fun...

  • Streaming Telemetry - Get insights by analyzing large amounts of data through visualizations using streaming telemetry using Pipeline, InfluxDB, and Grafana. You're going to want something to look at while your network is being deployed... and lets face it, there wasn't anything good in email.

  • Log Analytics with ELK - Use Elasticsearch, Logstash, and Kibana (ELK) for analyzing syslog message from network devices.

What's not

These are designed to be starting points for future tutorials, and not tutorials themselves.

Use Case

NetDevOps delivers consistent version-controlled infrastructure configurations, deployed with parallel and automated provisioning. The best way of understanding the real benefits of NetDevOps is to build your own network configuration and see how it works. With this code, you can create a complete environment that demonstrates the following benefits across the whole network:

  • Track the status of network configurations at any point in time.
  • Track proposers and approvers for each specific configuration change.
  • Provide visibility on differences in configurations at any point in time against a previous baseline.
  • Enable rollback to any previous baseline.
  • Provide syntax-checking capabilities for network changes in your own local workstation.
  • Automate the deployment of any proposed change across different environments, such as testing, staging, or production.
  • Model simulated virtual environments to test proposed changes before going to production.
  • Define and run the required tests set and passing criteria before accepting a change as successful, both in testing and production.
  • Automatically roll back any proposed configuration that does not pass the tests.

This demonstration uses the following building blocks:

  • GitLab: Version Control Server (VCS) with integration capabilities to provide automated pipelines
  • Cisco Network Services Orchestrator: formerly Tail-f, it provides end-to-end automation to design and deliver services much faster
  • pyATS: automation tool to perform stateful validation of network devices operational status with reusable test cases
  • VIRL: network modelling and simulation environment
  • Ansible: simple automation

Github Repo : https://github.com/DevNetSandbox/sbx_multi_ios/tree/master/cicd-3tier

README : https://github.com/DevNetSandbox/sbx_multi_ios/blob/master/cicd-3tier/README_julio.md

This code demonstrates how to use ELK Stack to monitor logs from network devices.

Before you begin, reserve the Multi-IOS Cisco Test Network Sandbox and complete required setup. Instructions are available here

You can access the environment code for ELK Stack from GitHub.

This code demonstrates how streaming telemetry on Cisco IOS-XR devices can be incorporated into a metrics pipeline.

Before you begin, follow the instructions at https://github.com/DevNetSandbox/sbx_multi_ios to reserve the Multi-IOS Cisco Test Network Sandbox and complete required setup.

You can access the environment code for streaming telemetry from GitHub.

View code on GitHub

Code Exchange Community

Get help, share code, and collaborate with other developers in the Code Exchange community.View Community
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.