NetDevOps CI/CD pipeline demo for mpls/l3vpn configuration management in a multi vendor environment CISCO IOSXR and JUNIPER JUNOS via NETCONF

NetDevOps CI/CD pipeline demo for mpls/l3vpn configuration management in a multi vendor environment CISCO IOSXR and JUNIPER JUNOS via NETCONF

The following architecture is used to illustrate a fully automated network configuration pipeline.

No alt text provided for this image

Configuration changes are proposed as code to the version control system, in our case, GitHub. Once the changes are pushed, GitHub will trigger webbooks to initiate the pipeline orchestration in Jenkins. The Nornir automation framework will support concurrent task execution as well as inventory management abstraction. On the other hand, Pyats Cisco's test and validation solution, performs stateful validation of the operational status of the network.

I'm not going to explain the operation in depth of every element in the architecture in this post, just as a high-level overview. but the plan is to publish additional articles illustrating them individually. 

Very simple topology used to test l3vpn configuration.

No alt text provided for this image

Target configuration goals:

2x vrf per PE, each with 1 loopback interface, basic ospf, ldp, bgp ipv4/vpnv4.

Note: Basic connectivity is pre-configured to ensure reachability with Devbox.


The following shows Nornir's structure including inventory, hosts variables, jinja2 templates etc. also the python script to execute the automated configuration using netconf and yang data models.

No alt text provided for this image

Basic python script to apply the configuration

No alt text provided for this image

Basic Pyats (easypy) to aggregate all testscripts into a job for easier execution. I am planning a separate article elaborating on the Pyats ecosystem.

No alt text provided for this image
  1. The pipeline is initiated by pushing the proposed changes to the SCM (GitHub).
No alt text provided for this image

2. Once GitHub receives the, it triggers a webbook to Jenkins in order to kick off the pipeline orchestration..

No alt text provided for this image

3. Jenkins jobs are kicked off.

Jenkins declarative pipeline
No alt text provided for this image

3.1 Build Config: executed configs in Dev network using Nornir via netconf.

No alt text provided for this image
No alt text provided for this image
No alt text provided for this image


3.2 Dev Test: executed test scripts for sanity checks validating operational states in ospf, ldp, bgp are in-line with previously captured golden status. also reachability using icmp ping.

No alt text provided for this image
No alt text provided for this image

3.3 Deploy prod: executed configs in Prod network using Nornir via netconf.

3.4 Slack notification: Used a Jenkins's plugin to send slack notifications, when CI/CD pipeline is completed.

No alt text provided for this image

Done!!!!








Others also viewed

Explore topics