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 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
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:
- Template Scripting for both Jinja and Velocity
- Variable notation and usage
- Binding Variables
- System Variables
- Regular Templates
- 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.
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:
- Intent can be defined as the set of code along with the configuration constructs deployed via a template.
- Variables can be used to modify or choose between constructs deployed via decision (‘IF’) statements
- Repetition of any construct may be introduced through the use of Looping structures on any device.
- Variables may be used when the device is being onboarded or provisioned
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.
- Management and Scale - This section explains general design, management and scale of Catalyst Center
- Software Image Management (SWIM) - This section explains how to use SWIM for staging and activating software
- 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
- Building Templates - This section will explain how to build a template on Catalyst Center from scratch
- 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 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
- 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
- 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
- Troubleshooting - This section will dive into Troubleshooting Velocity based Template Constructs
- 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.
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.
- Lab 1 Wired Automation - Covers green and brown field use cases (allow 4.0 hrs)
- Lab 2 Wireless Automation - Covers traditional wireless automation (allow 4.0 hrs)
- Lab 3 Advanced Automation - Covers how to build templates and logic (allow 4.0 hrs)
- Lab 4 Rest-API Orchestration - Covers Postman automation and orchestration of Catalyst Center (allow 2.0 hrs)
- Lab 5 Python Orchestration - In Devvelopment - Covers Python automation and orchestration of Catalyst Center (allow 3.0 hrs)
- Lab 6 Ansible Orchestration - In Devvelopment - Covers Ansible automation and orchestration Catalyst Center (allow 3.0 hrs)
- Lab 7 CICD Orchestration - Covers Python with JENKINS orchestration via REST-API (allow 4.0 hrs)
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
- PnP Preparation - The lab covers setup for Plug and Play (allow 1.5 hrs)
- Onboarding Templates - The lab covers in depth topics in deploying Day 0 templates (allow 1.5 hrs)
- Day N Templates - The lab covers Day N template constructs and use cases (allow 0.5 hrs)
- Composite Templates - This lab covers building a composite template on Catalyst Center (allow 0.5 hrs)
- Application Policys - This lab covers Application Policy & SDAVC in Catalyst Center (allow 1.0 hrs)
- Telemetry - This lab explains how to deploy Streaming Telemetry for Catalyst Center Assurance (allow 0.5 hrs)
- Advanced Automation - This lab will explore Advanced Automation examples (allow 1.5 hrs)
- Dynamic Automation - This lab will explore additional Advanced Automation examples (allow 2.0 hrs)
- Rest-API Orchestration - This lab uses Postman Collections to automate Catalyst Center (allow 2.0 hrs)
- Wireless Automation - This lab covers Traditional Wireless Automation (allow 6.0 hrs)
- Orchestration - This lab covers Postman and Ansible orchestration (allow 4.0 hrs)
- CICD Orchestration This lab covers Python, Ansible and JENKINS to orchestrate via REST-API (allow 4.0 hrs)
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
- DayN Velocity Examples - JSON files for easy import to Catalyst Center for Day N
- Onboarding Velocity Examples - JSON files for easy import to Catalyst Center for Day Zero
-
DayN Jinja2 Examples - JSON files for easy import to Catalyst Center for Day N
-
Onboarding Jinja2 Examples - JSON files for easy import to Catalyst Center for Day Zero
-
Wireless Jinja2 Examples - JSON files for easy import to Catalyst Center for Wireless
-
RAW TEXT Examples - Templates in raw text for editing
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 |
As a quick start with Catalyst Center Automation, you may utilize the above labs in conjuction with DCLOUD's sandbox:
- Cisco Enterprise Networks Hardware Sandbox West DC
- 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.