Overview
CLI scripting is widely used in labs and production networks, but deploying using this old methodology can be challenging in complex infrastructures. This lab demonstrates how to overcome CLI scripting limitations by using YANG models in combination with Netconf or to derive software bindings in YANG Development Kit (YDK). Netconf/YANG enables you to install, manipulate, and delete network configuration and retrieve network status efficiently, at scale and with reliability. YDK enables developers to program the network as software objects instead of classic templating, which enables developers to fully utilize their programming skills. The lab uses Jupyter Notebook to demonstrate these points because it is the ideal tool to frame interactive, easy-to-follow software presentations and to customize for new use cases.
Check it out here: https://dcloud-cms.cisco.com/demo/practical-sp-programmability-v1
Scenarios
- Scenario 1: Explore CLI Scripting
- Scenario 2: Program the Network with Netconf/YANG
- Scenario 3: Explore Network as Software with YDK
Requirements
| Required | Optional |
|---|
- Laptop with Cisco® AnyConnect®
| |
Components
- Ubuntu Host
- VirtualBox as a hypervisor to run XRv and Ubuntu client VMs
- Vagrant to orchestrate VirtualBox
- XRv 6.1.2
- Ubuntu VM
- Juptyer Notebook provides an interactive programmability presentation
- PC Workstation
- PuTTY with Ubuntu shortcut
- Chrome to run Jupyter Notebook on Ubuntu VM
Features
| CLI Scripting | Affected by many issues demonstrated in this lab, including: - Lack of transaction management
- Lack of a common data model across platforms (or even from the same vendor)
- Lack of proper version control for syntax and semantics
- No structured error management
- Ever-changing command structure and syntax
- Fragile scripts that are costly to maintain
|
|---|
| Netconf/YANG | - Overcome issues affecting CLI scripting
- YANG provides standardized network data models
- Netconf complements the YANG model as a protocol designed to install, manipulate, and delete network configuration and retrieve network status
- Netconf addresses transaction management and error handling
|
|---|
| YDK | - Program the network infrastructure as software object instead of templating
- Provide API layer over Netconf/YANG with software binding compiled from YANG model
- Provide client-side error handling based on YANG model syntax and semantic definitions
- Enable developer to use software skills when programming the network
|
|---|
Topology
