Template
Location in GUI:
Design » CLI Templates
Diagram
Section titled “Diagram”Classes
Section titled “Classes”projects (catalyst_center.templates)
Section titled “projects (catalyst_center.templates)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| dayn_templates | List | [dayn_templates] | No |
dayn_templates (catalyst_center.templates.projects)
Section titled “dayn_templates (catalyst_center.templates.projects)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| version | String | No | ||
| description | String | No | ||
| language | Choice | JINJA, VELOCITY | No | |
| device_types | List | [device_types] | No | |
| software_type | String | No | ||
| software_version | String | No | ||
| variables | List | [variables] | No | |
| tags | List | String | No | |
| management_device_ips | List | String | No | |
| containing_templates | List | String | No | |
| composite | Boolean | true, false | No | |
| redeploy_template | Choice | ALWAYS, NEVER, ON_CHANGE | No |
device_types (catalyst_center.templates.projects.dayn_templates)
Section titled “device_types (catalyst_center.templates.projects.dayn_templates)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| product_family | String | Yes | ||
| product_series | String | No | ||
| product_type | String | No |
variables (catalyst_center.templates.projects.dayn_templates)
Section titled “variables (catalyst_center.templates.projects.dayn_templates)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| field_name | String | No | ||
| required | Boolean | true, false | No | |
| data_type | Choice | STRING, INTEGER, IPADDRESS, MACADDRESS, SECTIONDIVIDER | Yes | |
| hint_text | String | No | ||
| default_value | String | No | ||
| additional_info | String | No |
Templates define CLI configuration snippets using Jinja or Velocity templating languages that are pushed to network devices during provisioning. Templates belong to a Project and can target specific device families and software versions. They support parameterized variables, conditional logic, and can be tagged with Tags for organization. Applicable to both SDA fabric and non-fabric deployments.
Examples
Section titled “Examples”Example 1: Day-N template configuration for ongoing network management using JINJA templating language to create access list templates targeting Catalyst 9300 series switches:
catalyst_center: templates: projects: - name: Project_DayN description: Project_DayN dayn_templates: - name: access_list_template description: Access List Template language: JINJA composite: false device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XEThe content of the template must be stored in the templates/ directory inside a JINJA file, with the file name matching the template name:
access_list_template.j2
## Access Listip access-list standard 2010 permit 10.0.0.0 0.0.0.25520 permit 20.0.0.0 0.0.0.255Example 2: On-boarding template configuration for initial device provisioning using JINJA templating to automate Day-0 configuration deployment on Catalyst 9300 series switches:
catalyst_center: templates: projects: - name: Project_Onboarding description: Project_Onboarding onboarding_templates: - name: onboarding_template description: Onboarding Template language: JINJA composite: false device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XEExample 3: Composite template configuration combining multiple individual templates into a single deployable unit for complex ACL configurations targeting Catalyst 9300 series switches:
catalyst_center: templates: projects: - name: Project_DayN description: Project_DayN dayn_templates: - name: ACL_COMPOSITE description: ACL COMPOSITE language: JINJA composite: true device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XE containing_templates: - ACL_41 - ACL_42Templates content:
ACL_41
ip access-list standard 4110 permit {{acl_ip_address}} 0.0.0.255ACL_42
ip access-list standard 4210 permit {{acl_ip_address}} 0.0.0.255Example 4: Network profile template assignment demonstrating how to associate Day-N templates with switching network profiles for automated deployment across multiple sites:
catalyst_center: network_profiles: switching: - name: SDA SWITCH PROFILE dayn_templates: - ACL_COMPOSITE sites: - Global/United States/Golden Hills Campus/Sunset Tower - Global/United States/Lakefront Tower/Windy City Plaza - Global/United States/Oceanfront Mansion/Art Deco Mansion - Global/United States/Desert Oasis Branch/Desert Oasis TowerExample 5: Device-specific template deployment showing how to deploy composite Day-N templates directly to individual devices with template-specific variable assignments:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: composite: - name: ACL_COMPOSITE variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_42Example 6: Template redeployment strategies demonstrating different approaches to template life-cycle management on network devices:
6a. Always redeploy template configuration regardless of content changes:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: composite: - name: ACL_COMPOSITE redeploy_template: ALWAYS variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_426b. Conditional template redeployment only when template content changes:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: composite: - name: ACL_COMPOSITE redeploy_template: ON_CHANGE variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_42The redeploy_template flag can be applied both at the template level and at the device level:
When defined under a template, it controls how that specific template is redeployed across all devices that use it.
When defined under a device, it controls redeployment of all templates assigned to that device.
This lets you choose whether to consistently redeploy a single template to many devices, or redeploy every template on a specific device.
Example 7: Template-level redeployment when content of template changes, affecting all devices that use this template:
catalyst_center: templates: projects: - name: Project_DayN description: Project_DayN dayn_templates: - name: ACL_COMPOSITE description: ACL COMPOSITE language: JINJA redeploy_template: ON_CHANGE composite: true device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XE containing_templates: - ACL_41 - ACL_42Example 8: Device-level redeployment when content of template changes, including both composite and regular templates:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: redeploy_template: ON_CHANGE composite: - name: ACL_COMPOSITE variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_42 regular: - name: ACL_BLOCK variables: - name: interface value: GigabtEthernet1/0/1Example 9: Handling duplicate template names across template projects using the project#name delimiter format.
When the same template name exists under multiple template projects (e.g. bfd_interval in both PROJECT1 and PROJECT2), use the # delimiter to specify which project’s template to reference. The format is ProjectName#TemplateName.
9a. Template definition — two projects each containing a template with the same name (bfd_interval):
catalyst_center: templates: projects: - name: PROJECT1 dayn_templates: - name: bfd_interval description: add bfd interfval of 250 min_rx to Enterprise p2p ISIS interfaces language: JINJA device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9000 Series Virtual Switches" software_type: IOS-XE
- name: PROJECT2 dayn_templates: - name: bfd_interval description: add bfd interfval of 350 min_rx to Service Provider p2p ISIS interfaces language: JINJA device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9000 Series Virtual Switches" software_type: IOS-XENote: The template’s Jinja or Velocity file name must also be prefixed with the project name to avoid conflicts. For example,
PROJECT1#bfd_interval.j2andPROJECT2#bfd_interval.j2.
9b. Network profile : referencing a template that has a duplicate name across projects. Use ProjectName#TemplateName to specify the exact template:
catalyst_center: network_profiles: switching: - name: SDA SWITCH PROFILE dayn_templates: - PROJECT1#bfd_interval sites: - Global/Poland/KrakowWhen the template name is unique across all projects, the project prefix is not required:
catalyst_center: network_profiles: switching: - name: SDA SWITCH PROFILE dayn_templates: - ACL_Block sites: - Global/Poland/Krakow9c. Device provisioning: deploying templates with duplicate names to specific devices. Use ProjectName#TemplateName in the name field:
catalyst_center: inventory: devices: - name: FIAB fqdn_name: FIAB.cisco.eu device_ip: 181.1.1.1 pid: C9KV-UADP-8P state: PROVISION device_role: ACCESS site: Global/Poland/Krakow/Bld A dayn_templates: composite: - name: PROJECT2#bfd_interval redeploy_template: ALWAYS
- name: LAN-EN2 fqdn_name: LAN-EN2.cisco.eu device_ip: 181.1.1.43 pid: C9KV-UADP-8P state: PROVISION device_role: ACCESS site: Global/Poland/Krakow/Bld A dayn_templates: composite: - name: PROJECT2#bfd_interval redeploy_template: ALWAYSWhen the template name is unique across all projects, the project prefix is not required:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.eu device_ip: 198.18.130.1 pid: C9KV-UADP-8P state: PROVISION device_role: ACCESS site: Global/Poland/Krakow/Bld A dayn_templates: regular: - name: ACL_43 variables: - name: acl_ip_address value: 23.23.23.0Example 10: Backward compatibility: mixing existing (bare name) and new (ProjectName#TemplateName) formats across templates, network profiles, and device provisioning.
The project#name delimiter is only required when the same template name exists under multiple projects. All existing YAML without the prefix continues to work unchanged.
10a. Templates — ACL_Block is unique to PROJECT1, while Day_N_remove_bfd exists in both projects:
catalyst_center: templates: projects: - name: PROJECT1 dayn_templates: - name: ACL_Block description: ACL to block malicious IPs device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9000 Series Virtual Switches" software_type: IOS-XE - name: Day_N_remove_bfd description: Remove BFD from C9kv p2p ISIS interfaces language: JINJA device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9000 Series Virtual Switches" software_type: IOS-XE
- name: PROJECT2 dayn_templates: - name: Day_N_remove_bfd description: Remove BFD from C9kv p2p ISIS interfaces language: JINJA device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9000 Series Virtual Switches" software_type: IOS-XE10b. Network profiles — ACL_Block is unique so bare name works (old format). Day_N_remove_bfd is duplicated so project#name is required (new format). Both formats coexist in the same list:
catalyst_center: network_profiles: switching: - name: SDA SWITCH PROFILE dayn_templates: - ACL_Block - PROJECT2#Day_N_remove_bfd sites: - Global/Poland/Krakow10c. Device provisioning — a single device deployed with both a duplicate-name template (PROJECT2#Day_N_remove_bfd, new format) and a unique template (ACL_Block, old format):
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.eu device_ip: 198.18.130.1 pid: C9KV-UADP-8P state: PROVISION device_role: ACCESS site: Global/Poland/Krakow/Bld A dayn_templates: regular: - name: PROJECT2#Day_N_remove_bfd redeploy_template: ALWAYS - name: ACL_Block variables: - name: management_interface value: Loopback56In summary — the project#name format is additive. Existing templates, network profiles, and device configurations that use unique template names require no changes.
Note: Using
project#namefor a template that is unique across projects is also valid and will not break anything. For example, ifACL_Blockonly exists underPROJECT1, bothACL_BlockandPROJECT1#ACL_Blockresolve to the same template. The project prefix is only required for duplicate names, but it is accepted for all templates.
Location in GUI:
Design » CLI Templates
Diagram
Section titled “Diagram”Classes
Section titled “Classes”projects (catalyst_center.templates)
Section titled “projects (catalyst_center.templates)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| dayn_templates | List | [dayn_templates] | No |
dayn_templates (catalyst_center.templates.projects)
Section titled “dayn_templates (catalyst_center.templates.projects)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| version | String | No | ||
| description | String | No | ||
| language | Choice | JINJA, VELOCITY | No | |
| device_types | List | [device_types] | No | |
| software_type | String | No | ||
| software_version | String | No | ||
| variables | List | [variables] | No | |
| tags | List | String | No | |
| management_device_ips | List | String | No | |
| containing_templates | List | String | No | |
| composite | Boolean | true, false | No | |
| redeploy_template | Choice | ALWAYS, NEVER, ON_CHANGE | No |
device_types (catalyst_center.templates.projects.dayn_templates)
Section titled “device_types (catalyst_center.templates.projects.dayn_templates)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| product_family | String | Yes | ||
| product_series | String | No | ||
| product_type | String | No |
variables (catalyst_center.templates.projects.dayn_templates)
Section titled “variables (catalyst_center.templates.projects.dayn_templates)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| field_name | String | No | ||
| required | Boolean | true, false | No | |
| data_type | Choice | STRING, INTEGER, IPADDRESS, MACADDRESS, SECTIONDIVIDER | Yes | |
| hint_text | String | No | ||
| default_value | String | No | ||
| additional_info | String | No |
Examples
Section titled “Examples”Example 1: Day-N template configuration for ongoing network management using JINJA templating language to create access list templates targeting Catalyst 9300 series switches:
catalyst_center: templates: projects: - name: Project_DayN description: Project_DayN dayn_templates: - name: access_list_template description: Access List Template language: JINJA composite: false device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XEThe content of the template must be stored in the templates/ directory inside a JINJA file, with the file name matching the template name:
access_list_template.j2
## Access Listip access-list standard 2010 permit 10.0.0.0 0.0.0.25520 permit 20.0.0.0 0.0.0.255Example 2: On-boarding template configuration for initial device provisioning using JINJA templating to automate Day-0 configuration deployment on Catalyst 9300 series switches:
catalyst_center: templates: projects: - name: Project_Onboarding description: Project_Onboarding onboarding_templates: - name: onboarding_template description: Onboarding Template language: JINJA composite: false device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XEExample 3: Composite template configuration combining multiple individual templates into a single deployable unit for complex ACL configurations targeting Catalyst 9300 series switches:
catalyst_center: templates: projects: - name: Project_DayN description: Project_DayN dayn_templates: - name: ACL_COMPOSITE description: ACL COMPOSITE language: JINJA composite: true device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XE containing_templates: - ACL_41 - ACL_42Templates content:
ACL_41
ip access-list standard 4110 permit {{acl_ip_address}} 0.0.0.255ACL_42
ip access-list standard 4210 permit {{acl_ip_address}} 0.0.0.255Example 4: Network profile template assignment demonstrating how to associate Day-N templates with switching network profiles for automated deployment across multiple sites:
catalyst_center: network_profiles: switching: - name: SDA SWITCH PROFILE dayn_templates: - ACL_COMPOSITE sites: - Global/United States/Golden Hills Campus/Sunset Tower - Global/United States/Lakefront Tower/Windy City Plaza - Global/United States/Oceanfront Mansion/Art Deco Mansion - Global/United States/Desert Oasis Branch/Desert Oasis TowerExample 5: Device-specific template deployment showing how to deploy composite Day-N templates directly to individual devices with template-specific variable assignments:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: composite: - name: ACL_COMPOSITE variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_42Example 6: Template redeployment strategies demonstrating different approaches to template life-cycle management on network devices:
6a. Always redeploy template configuration regardless of content changes:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: composite: - name: ACL_COMPOSITE redeploy_template: ALWAYS variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_426b. Conditional template redeployment only when template content changes:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: composite: - name: ACL_COMPOSITE redeploy_template: ON_CHANGE variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_42The redeploy_template flag can be applied both at the template level and at the device level:
When defined under a template, it controls how that specific template is redeployed across all devices that use it.
When defined under a device, it controls redeployment of all templates assigned to that device.
This lets you choose whether to consistently redeploy a single template to many devices, or redeploy every template on a specific device.
Example 7: Template-level redeployment when content of template changes, affecting all devices that use this template:
catalyst_center: templates: projects: - name: Project_DayN description: Project_DayN dayn_templates: - name: ACL_COMPOSITE description: ACL COMPOSITE language: JINJA redeploy_template: ON_CHANGE composite: true device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XE containing_templates: - ACL_41 - ACL_42Example 8: Device-level redeployment when content of template changes, including both composite and regular templates:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: redeploy_template: ON_CHANGE composite: - name: ACL_COMPOSITE variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_42 regular: - name: ACL_BLOCK variables: - name: interface value: GigabtEthernet1/0/1Location in GUI:
Design » CLI Templates
Diagram
Section titled “Diagram”Classes
Section titled “Classes”projects (catalyst_center.templates)
Section titled “projects (catalyst_center.templates)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| dayn_templates | List | [dayn_templates] | No |
dayn_templates (catalyst_center.templates.projects)
Section titled “dayn_templates (catalyst_center.templates.projects)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| version | String | No | ||
| description | String | No | ||
| language | Choice | JINJA, VELOCITY | No | |
| device_types | List | [device_types] | No | |
| software_type | String | No | ||
| software_version | String | No | ||
| variables | List | [variables] | No | |
| tags | List | String | No | |
| management_device_ips | List | String | No | |
| containing_templates | List | String | No | |
| composite | Boolean | true, false | No | |
| redeploy_template | Choice | ALWAYS, NEVER, ON_CHANGE | No |
device_types (catalyst_center.templates.projects.dayn_templates)
Section titled “device_types (catalyst_center.templates.projects.dayn_templates)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| product_family | String | Yes | ||
| product_series | String | No | ||
| product_type | String | No |
variables (catalyst_center.templates.projects.dayn_templates)
Section titled “variables (catalyst_center.templates.projects.dayn_templates)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| field_name | String | No | ||
| required | Boolean | true, false | No | |
| data_type | Choice | STRING, INTEGER, IPADDRESS, MACADDRESS, SECTIONDIVIDER | Yes | |
| hint_text | String | No | ||
| default_value | String | No | ||
| additional_info | String | No |
Examples
Section titled “Examples”Example 1: Day-N template configuration for ongoing network management using JINJA templating language to create access list templates targeting Catalyst 9300 series switches:
catalyst_center: templates: projects: - name: Project_DayN description: Project_DayN dayn_templates: - name: access_list_template description: Access List Template language: JINJA composite: false device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XEThe content of the template must be stored in the templates/ directory inside a JINJA file, with the file name matching the template name:
access_list_template.j2
## Access Listip access-list standard 2010 permit 10.0.0.0 0.0.0.25520 permit 20.0.0.0 0.0.0.255Example 2: On-boarding template configuration for initial device provisioning using JINJA templating to automate Day-0 configuration deployment on Catalyst 9300 series switches:
catalyst_center: templates: projects: - name: Project_Onboarding description: Project_Onboarding onboarding_templates: - name: onboarding_template description: Onboarding Template language: JINJA composite: false device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XEExample 3: Composite template configuration combining multiple individual templates into a single deployable unit for complex ACL configurations targeting Catalyst 9300 series switches:
catalyst_center: templates: projects: - name: Project_DayN description: Project_DayN dayn_templates: - name: ACL_COMPOSITE description: ACL COMPOSITE language: JINJA composite: true device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XE containing_templates: - ACL_41 - ACL_42Templates content:
ACL_41
ip access-list standard 4110 permit {{acl_ip_address}} 0.0.0.255ACL_42
ip access-list standard 4210 permit {{acl_ip_address}} 0.0.0.255Example 4: Network profile template assignment demonstrating how to associate Day-N templates with switching network profiles for automated deployment across multiple sites:
catalyst_center: network_profiles: switching: - name: SDA SWITCH PROFILE dayn_templates: - ACL_COMPOSITE sites: - Global/United States/Golden Hills Campus/Sunset Tower - Global/United States/Lakefront Tower/Windy City Plaza - Global/United States/Oceanfront Mansion/Art Deco Mansion - Global/United States/Desert Oasis Branch/Desert Oasis TowerExample 5: Device-specific template deployment showing how to deploy composite Day-N templates directly to individual devices with template-specific variable assignments:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: composite: - name: ACL_COMPOSITE variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_42Example 6: Template redeployment strategies demonstrating different approaches to template life-cycle management on network devices:
6a. Always redeploy template configuration regardless of content changes:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: composite: - name: ACL_COMPOSITE redeploy_template: ALWAYS variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_426b. Conditional template redeployment only when template content changes:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: composite: - name: ACL_COMPOSITE redeploy_template: ON_CHANGE variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_42The redeploy_template flag can be applied both at the template level and at the device level:
When defined under a template, it controls how that specific template is redeployed across all devices that use it.
When defined under a device, it controls redeployment of all templates assigned to that device.
This lets you choose whether to consistently redeploy a single template to many devices, or redeploy every template on a specific device.
Example 7: Template-level redeployment when content of template changes, affecting all devices that use this template:
catalyst_center: templates: projects: - name: Project_DayN description: Project_DayN dayn_templates: - name: ACL_COMPOSITE description: ACL COMPOSITE language: JINJA redeploy_template: ON_CHANGE composite: true device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XE containing_templates: - ACL_41 - ACL_42Example 8: Device-level redeployment when content of template changes, including both composite and regular templates:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: redeploy_template: ON_CHANGE composite: - name: ACL_COMPOSITE variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_42 regular: - name: ACL_BLOCK variables: - name: interface value: GigabtEthernet1/0/1Location in GUI:
Design » CLI Templates
Diagram
Section titled “Diagram”Classes
Section titled “Classes”projects (catalyst_center.templates)
Section titled “projects (catalyst_center.templates)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| dayn_templates | List | [dayn_templates] | No |
dayn_templates (catalyst_center.templates.projects)
Section titled “dayn_templates (catalyst_center.templates.projects)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| version | String | No | ||
| description | String | No | ||
| language | Choice | JINJA, VELOCITY | No | |
| device_types | List | [device_types] | No | |
| software_type | String | No | ||
| software_version | String | No | ||
| variables | List | [variables] | No | |
| tags | List | String | No | |
| management_device_ips | List | String | No | |
| containing_templates | List | String | No | |
| composite | Boolean | true, false | No | |
| redeploy_template | Choice | ALWAYS, NEVER, ON_CHANGE | No |
device_types (catalyst_center.templates.projects.dayn_templates)
Section titled “device_types (catalyst_center.templates.projects.dayn_templates)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| product_family | String | Yes | ||
| product_series | String | No | ||
| product_type | String | No |
variables (catalyst_center.templates.projects.dayn_templates)
Section titled “variables (catalyst_center.templates.projects.dayn_templates)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| field_name | String | No | ||
| required | Boolean | true, false | No | |
| data_type | Choice | STRING, INTEGER, IPADDRESS, MACADDRESS, SECTIONDIVIDER | Yes | |
| hint_text | String | No | ||
| additional_info | String | No |
Examples
Section titled “Examples”Example 1: Day-N template configuration for ongoing network management using JINJA templating language to create access list templates targeting Catalyst 9300 series switches:
catalyst_center: templates: projects: - name: Project_DayN description: Project_DayN dayn_templates: - name: access_list_template description: Access List Template language: JINJA composite: false device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XEThe content of the template must be stored in the templates/ directory inside a JINJA file, with the file name matching the template name:
access_list_template.j2
## Access Listip access-list standard 2010 permit 10.0.0.0 0.0.0.25520 permit 20.0.0.0 0.0.0.255Example 2: Onboarding template configuration for initial device provisioning using JINJA templating to automate Day-0 configuration deployment on Catalyst 9300 series switches:
catalyst_center: templates: projects: - name: Project_Onboarding description: Project_Onboarding onboarding_templates: - name: onboarding_template description: Onboarding Template language: JINJA composite: false device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XEExample 3: Composite template configuration combining multiple individual templates into a single deployable unit for complex ACL configurations targeting Catalyst 9300 series switches:
catalyst_center: templates: projects: - name: Project_DayN description: Project_DayN dayn_templates: - name: ACL_COMPOSITE description: ACL COMPOSITE language: JINJA composite: true device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XE containing_templates: - ACL_41 - ACL_42Templates content:
ACL_41
ip access-list standard 4110 permit {{acl_ip_address}} 0.0.0.255ACL_42
ip access-list standard 4210 permit {{acl_ip_address}} 0.0.0.255Example 4: Network profile template assignment demonstrating how to associate Day-N templates with switching network profiles for automated deployment across multiple sites:
catalyst_center: network_profiles: switching: - name: SDA SWITCH PROFILE dayn_templates: - ACL_COMPOSITE sites: - Global/United States/Golden Hills Campus/Sunset Tower - Global/United States/Lakefront Tower/Windy City Plaza - Global/United States/Oceanfront Mansion/Art Deco Mansion - Global/United States/Desert Oasis Branch/Desert Oasis TowerExample 5: Device-specific template deployment showing how to deploy composite Day-N templates directly to individual devices with template-specific variable assignments:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: composite: - name: ACL_COMPOSITE variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_42Example 6: Template redeployment strategies demonstrating different approaches to template lifecycle management on network devices:
6a. Always redeploy template configuration regardless of content changes:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: composite: - name: ACL_COMPOSITE redeploy_template: ALWAYS variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_426b. Conditional template redeployment only when template content changes:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: composite: - name: ACL_COMPOSITE redeploy_template: ON_CHANGE variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_42The redeploy_template flag can be applied both at the template level and at the device level:
When defined under a template, it controls how that specific template is redeployed across all devices that use it.
When defined under a device, it controls redeployment of all templates assigned to that device.
This lets you choose whether to consistently redeploy a single template to many devices, or redeploy every template on a specific device.
Example 7: Template-level redeployment when content of template changes, affecting all devices that use this template:
catalyst_center: templates: projects: - name: Project_DayN description: Project_DayN dayn_templates: - name: ACL_COMPOSITE description: ACL COMPOSITE language: JINJA redeploy_template: ON_CHANGE composite: true device_types: - product_family: "Switches and Hubs" product_series: "Cisco Catalyst 9300 Series Switches" software_type: IOS-XE containing_templates: - ACL_41 - ACL_42Example 8: Device-level redeployment when content of template changes, including both composite and regular templates:
catalyst_center: inventory: devices: - name: EDGE01 fqdn_name: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: redeploy_template: ON_CHANGE composite: - name: ACL_COMPOSITE variables: - name: acl_ip_address value: 21.21.21.0 template_name: ACL_41 - name: acl_ip_address value: 22.22.22.0 template_name: ACL_42 regular: - name: ACL_BLOCK variables: - name: interface value: GigabtEthernet1/0/1