Skip to content
/ DNAC-TEMPLATES Public template

This repository provides examples and guidance for using Catalyst Center, an intelligent automation and assurance platform for campus networks. It covers various aspects of network automation, including Plug and Play (PnP) workflows, onboarding and day-N templates, and the use of Velocity and Jinja2 scripting languages.

License

Notifications You must be signed in to change notification settings

kebaldwi/DNAC-TEMPLATES

Repository files navigation

CATC-TEMPLATES (aka DNAC-TEMPLATES) published

Note

Thank you for continuing your support of the CATC-Template Repository formerly known as the DNAC-Template Repository by your continued visits to the site. Over the past few months we have updated and redeveloped a lot of content and it is reorganized to be more consise, and to aide users in finding the relevant content easily. Over the next few months you will notice more lab updates to the repository, as we add additional content. The folder structure and resources have been reorganized for ease of use, and so that CODE examples and TUTORIALS will be grouped together for ease of use. We hope this will help users to find the content they need in an easier manner.

Important

📣 Discussions: is now now open, so please do use that for feedback suggestions on improvements or other ideas, please use this link: Discussions

📣 Issues: will now be used to track problems with documentation or the labs and code, please use this link: Issue

Catalyst Center

Catalyst Center Overview

Catalyst Center is an intelligent Automation and Assurance platform for the campus. Catalyst Center enables, simplified Day-0 through Day-N management of switching, routing, and wireless infrastructure. It also improves operations with AI/ML-enhanced analytics to streamline troubleshooting and provide actionable insights into the health of the network and the quality of experience for users and applications. Here are some of the capabilities of Catalyst Center in their respective domains:

  • NetOps: Network Plug and Play for Zero Touch Deployment, Software Image Management, Compliance, Configuration Templates and Network Profiles, Model-Driven Configuration, and RMA Support.
  • AIOps: AI/ML-enhanced monitoring and troubleshooting support. Predictive Insights, Network Baselines, Network Reasoner, Device/Client/Application 360, Intelligent Capture.
  • SecOps: AI Endpoint Analytics, Group-Based Policy and Analytics, Software-Defined Access
  • DevOps: ITSM Integrations, APIs, SDK & Ansible Module

Overview

This Repository will give examples of templates used in Catalyst Center that can be modified. Additional information will be included to hopefully give a well rounded explanation of Automation methods with Templates using Catalyst Center and flows with both Onboarding and DayN Templates and concepts.

The repository will include scripts and examples with the following:

  1. Template Scripting for both Jinja and Velocity
  2. Variable notation and usage
  3. Binding Variables
  4. System Variables
  5. Regular Templates
  6. Composite Templates

The goal of this repository is a practical guide to allow engineers to rapidly begin using Catalyst Center automation and begin conversion of IOS CLI Templates. The Templates have been developed over the years and with various use cases in mind, and so the intent of sharing this collection is to reduce the lift to begin automating.

Intent Based Networking

Either one or multiple Templates may be used to deploy Intent in combination with the Design Settings and Policies deployed within the UI. One or Multiple templates may be used in Onboarding (PnP) or Day N methods. Day N methods are designed for making ongoing changes and may require 'no' statements depending on the configuration construct being modified.

Additionally:

  1. Intent can be defined as the set of code along with the configuration constructs deployed via a template.
  2. Variables can be used to modify or choose between constructs deployed via decision (‘IF’) statements
  3. Repetition of any construct may be introduced through the use of Looping structures on any device.
  4. Variables may be used when the device is being onboarded or provisioned

Tutorials

Various sections will be covered within this github repository. Please use this menu as the main index for navigating content. You will find various examples within the various folders of this repository, with supplied explanation readme files for reference.

Design

Automation Workflows

  • PnP Workflow - This section explains the overall Plug and Play Methodology
  • Onboarding Templates - This section will explain Onboarding Templates in Catalyst Center and their use in bringing various devices under Catalyst Center management
  • DayN Templates - This section will explain how to use templates for ongoing (Day-N) changes to the network

Templating

  • Building Templates - This section will explain how to build a template on Catalyst Center from scratch

Velocity Language

  • Velocity Variables - This section explains Template Variables in depth, and how and where to use them
  • Velocity Scripting - This section will dive into Velocity Language Template Scripting constructs and use cases
  • Advanced Velocity Scripting - This section will dive into Advanced Velocity Language Template examples

Jinja2 Language

  • Jinja2 Variables - This section explains Template Variables in depth, and how and where to use them
  • Jinja2 Scripting - This section will dive into Jinja2 Language Template Scripting constructs and use cases
  • Advanced Jinja2 Scripting - This section will dive into Advanced Jinja2 Language Template examples

Advanced Automation Use Cases

  • Embedded Event Manager - This section will dive into EEM (Embedded Event Manager) Scripting and various use cases
  • System Variables - This section explains Catalyst Centers System Variables

Orchestration of Catalyst Center

  • REST API Orchestration - This section is a high level discussion of utlilizing REST API with Catalyst Center
  • Python Orchestration - This section is a high level discussion of utilizing Python with Catalyst Center
  • Ansible Orchestration - This section is a high level discussion of Ansible orchestration of Catalyst Center
  • CICD Orchestration - This section is a high level discussion of CICD orchestration of Catalyst Center

Fault-Finding

  • Troubleshooting - This section will dive into Troubleshooting Velocity based Template Constructs

Miscellaneous

  • Certificates - This section will dive into creating a Certificate for Catalyst Center using OPENSSL.

This section built out in a lab format to guide you through the typical steps to complete various automation tasks delivered by Catalyst Center. It allows for customers to practice Catalyst Center workflows with Onboarding, DayN Templates, and Application Policy automation on both Wired and Wireless Platforms, while reducing the time and effort needed to instantiate the network The lab will also introduce advanced velocity templating topics and troubleshooting tools, which may help determine common failure scenarios in a deployment.

Important

Please note that LAB content in this Repository is aligned with specific DCLOUD Demonstrations that have to be set up by either a Cisco Employee or a Cisco Parter. If you are having trouble accessing the DCLOUD content please get in touch with your Local Cisco Account Team.

New Catalyst Center Lab Content

This newer and more modular lab approach is designed to deal with and includes concepts from the legacy labs in a newer more modular format.

  1. Lab 1 Wired Automation - Covers green and brown field use cases (allow 4.0 hrs)
  2. Lab 2 Wireless Automation - Covers traditional wireless automation (allow 4.0 hrs)
  3. Lab 3 Advanced Automation - Covers how to build templates and logic (allow 4.0 hrs)
  4. Lab 4 Rest-API Orchestration - Covers Postman automation and orchestration of Catalyst Center (allow 2.0 hrs)
  5. Lab 5 Python Orchestration - In Devvelopment - Covers Python automation and orchestration of Catalyst Center (allow 3.0 hrs)
  6. Lab 6 Ansible Orchestration - In Devvelopment - Covers Ansible automation and orchestration Catalyst Center (allow 3.0 hrs)
  7. Lab 7 CICD Orchestration - Covers Python with JENKINS orchestration via REST-API (allow 4.0 hrs)

Specific Lab Content

In this legacy lab section you will continue to find all the existing labs which deal with specifics in separate easy to do labs. This set of labs is being depricated due to new content above.

Expand section for Specific Lab Content if required

This CODE repository is built out to share Catalyst Center Automations and Templates and allow for ongoing submissions from those inclined to share their work with the community. Initially the repository includes all the examples that we have used in this repository in RAW TEXT and JSON format.

The CODE is also offered in Latest Release Candidates automatically

Important

The locations for examples have been consolidated here. If you have a template your proud of and you want your name in lights please submit them and we will include them in the repository giving you an honourable mention.

If you wish to contribute to the templates please submit here

Velocity Scripting Language

Jinja2 Scripting Language

Other Examples

Other Automation Scripts and Documentation used in these labs or elsewhere.

Descriptions Folders
Cisco Documentation Docs Folder
Jenkins Scripts Jenkins Examples
Postman Collections Postman Collections
Python Code Examples Python Code
Useful Shell Scripts Shell Scripts
Template Folder Template Folder
CSV Data Examples CSV Examples
JSON Data Examples JSON Examples
YAML Data Examples YAML Examples

DCLOUD as a LAB

Overview

As a quick start with Catalyst Center Automation, you may utilize the above labs in conjuction with DCLOUD's sandbox:

  1. Cisco Enterprise Networks Hardware Sandbox West DC
  2. Cisco Enterprise Networks Hardware Sandbox East DC

This allows you to run these labs and gives not only an environment to try the various code samples, but also to develop and export your own code for use in your production environment. DCLOUD provides for rapid and safe POC/POV on-demand environment without impacting production environments. DCLOUD also negates the need for shipping equipment, associated lead times, and licensing issues associated with setting up your own private testing environment. Please do adhere to the best practices for the DCLOUD environment when using it.

DCLOUD allows for use with a web-based browser client for VPN-less connectivity, as well as AnyConnect VPN client connectivity for those who prefer it. The labs are hosted in Cisco San Jose Facility (Select US East or US West Region when scheduling in DCLOUD). Choose the Cisco Enterprise Network Sandbox version you prefer.

Important

To access this or any other content, including demonstrations, labs, and training in DCLOUD please work with your Cisco Account team or Cisco Partner Account Team directly. Your Account teams will make sure the session is scheduled and shared for you to use. Once booked follow the guide within Github to complete the tasks adhering to the best practices of the DCLOUD environment.

In this section I have compiled a number of template examples built with Jinja2 Language. These samples include a wide ranging set of configurations which may be used in your labs to solve specific configuration requirements. This collection summarizes aspects covered previously in this templating repository, and are aimed at providing quick practical references to help engineers solve automation tasks with the help of Catalyst Center. Additionally these examples may be used in testing in dCloud with any of the labs on this repository.

    Practical examples can be located here: Practical Template Examples

Important

Feedback: If you found this set of labs or content helpful, please fill in comments on this feedback form give feedback.

Content Problems and Issues: If you found an issue on the lab or content please fill in an issue include what file, along with the issue you ran into.

About

This repository provides examples and guidance for using Catalyst Center, an intelligent automation and assurance platform for campus networks. It covers various aspects of network automation, including Plug and Play (PnP) workflows, onboarding and day-N templates, and the use of Velocity and Jinja2 scripting languages.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Contributors 7