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 |
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 | ||
| 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/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/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 |
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”DayN template example:
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.255Onboarding template example:
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-XEComposite templates example:
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 of Assigning DayN Template to Network Profile:
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 of Deploying DayN Template on Device:
catalyst_center: inventory: devices: - name: EDGE01.cisco.com hostname: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: composite: - name: ACL_COMPOSITE state: DEPLOY 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_42Location 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 |
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”DayN template example:
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.255Onboarding template example:
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-XEComposite templates example:
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 of Assigning DayN Template to Network Profile:
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 of Deploying DayN Template on Device:
catalyst_center: inventory: devices: - name: EDGE01.cisco.com hostname: EDGE01.cisco.com device_ip: 192.168.30.64 serial_number: FOC2644021A pid: C9300-24P state: PROVISION dayn_templates: composite: - name: ACL_COMPOSITE state: DEPLOY 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