cisco.dnac.template_workflow_manager module – Resource module for Template functions
Note
This module is part of the cisco.dnac collection (version 6.25.0).
You might already have this collection installed if you are using the ansible
package.
It is not included in ansible-core
.
To check whether it is installed, run ansible-galaxy collection list
.
To install it, use: ansible-galaxy collection install cisco.dnac
.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: cisco.dnac.template_workflow_manager
.
New in cisco.dnac 6.6.0
Synopsis
Manage operations create, update and delete of the resource Configuration Template.
API to create a template by project name and template name.
API to update a template by template name and project name.
API to delete a template by template name and project name.
API to export the projects for given projectNames.
API to export the templates for given templateIds.
API to manage operation create of the resource Configuration Template Import Project.
API to manage operation create of the resource Configuration Template Import Template.
Requirements
The below requirements are needed on the host that executes this module.
dnacentersdk >= 2.7.2
python >= 3.9
Parameters
Parameter |
Comments |
---|---|
List of details of templates being managed. |
|
Perform operations such as Create/Update/Delete on a template. |
|
Identifies the creator of the template. |
|
Specifies if the template is composite. Choices:
|
|
Refer to a set of templates within the main template to define more complex or modular configurations. This is particularly useful in systems that support hierarchical or nested templates. Here parent templates may contain child templates to form a complete configuration. |
|
Specifies if the template is composite. Choices:
|
|
Provides a description of the template. |
|
List of dictionaries details the types of devices that the templates can be applied to. |
|
Denotes the family to which the device belongs. Choices:
|
|
Specifies the series classification of the device. |
|
Describes the exact type of the device. |
|
Unique identifier for the template, represented as a UUID. |
|
Programming language used for templating. Options are ‘JINJA’ for Jinja templating or ‘VELOCITY’ for Apache Velocity. Choices:
|
|
Designation of the template, serving as its unique name. |
|
Narrative that elaborates on the purpose and scope of the project. |
|
Title of the project within which the template is categorized and managed. |
|
A list of dictionaries representing tags associated with the Configuration Template during creation. |
|
The unique identifier for each tag, presented as a UUID. |
|
The descriptive label or name assigned to the tag. |
|
The actual script or code constituting the body of the template. |
|
The customization of the contents within the template. |
|
Associates the parameter with its source. |
|
Specifies a user-defined ordering for the parameter. |
|
Identifies the data type of the parameter (e.g., string, integer, boolean). |
|
Establishes a default value for the parameter, used if no other value is provided. |
|
Provides a descriptive explanation of the parameter’s purpose. |
|
The name of the parameter as displayed to users. |
|
Categorizes the parameter into a named group for organizational purposes. |
|
A unique identifier for the parameter, formatted as a UUID. |
|
Gives guidance or instructions regarding the parameter’s use. |
|
A unique key that identifies the parameter within the template. |
|
Indicates whether the entry is not to be treated as a parameter. Choices:
|
|
Determines the sequence in which the parameter appears relative to others. |
|
Specifies if the parameter should be treated as an array. Choices:
|
|
The name of the parameter. |
|
Denotes the provider associated with the parameter. |
|
Defines the permissible range for the parameter’s value. |
|
Unique identifier for the range, represented as a UUID. |
|
Specifies the maximum allowable value for the parameter. |
|
Specifies the minimum allowable value for the parameter. |
|
Dictates whether the parameter is required for template operations. Choices:
|
|
Contains options for parameter selection when a choice is available. |
|
Lists the default values that are preselected. |
|
A unique identifier for the selection entity, represented as a UUID. |
|
Specifies the type of selection, such as ‘SINGLE_SELECT’ or ‘MULTI_SELECT’. |
|
A dictionary of available values for selection. |
|
The current version of template. |
|
Specifies the sequence in which custom parameters or variables should be arranged within the template. Choices:
|
|
List of dictionaries details the types of devices that the templates can be applied to. |
|
Denotes the family to which the device belongs. Choices:
|
|
Specifies the series classification of the device. |
|
Describes the exact type of the device. |
|
Define failure policy if template provisioning fails. failure_policy will be enabled only when the composite is set to True. Choices:
|
|
A unique identifier, represented as a UUID. |
|
Programming language used for templating. Options are ‘JINJA’ for Jinja templating or ‘VELOCITY’ for Apache Velocity. Choices:
|
|
Narrative that elaborates on the purpose and scope of the project. |
|
Title of the project within which the template is categorized and managed. |
|
Applicable device software type. This field is required to create a new template. Choices:
|
|
Applicable device software version. |
|
The actual script or code constituting the body of the template. |
|
Provides a overview of the template. |
|
Name of template. This field is required to create a new template. |
|
The customization of the contents within the template. |
|
Associates the parameter with its source. |
|
Specifies a user-defined ordering for the parameter. |
|
Identifies the data type of the parameter (e.g., string, integer, boolean). |
|
Establishes a default value for the parameter, used if no other value is provided. |
|
Provides a descriptive explanation of the parameter’s purpose. |
|
The name of the parameter as displayed to users. |
|
Categorizes the parameter into a named group for organizational purposes. |
|
A unique identifier for the parameter, formatted as a UUID. |
|
Gives guidance or instructions regarding the parameter’s use. |
|
A unique key that identifies the parameter within the template. |
|
Indicates whether the entry is not to be treated as a parameter. Choices:
|
|
Determines the sequence in which the parameter appears relative to others. |
|
Specifies if the parameter should be treated as an array. Choices:
|
|
The name of the parameter. |
|
Denotes the provider associated with the parameter. |
|
Defines the permissible range for the parameter’s value. |
|
Unique identifier for the range, represented as a UUID. |
|
Specifies the maximum allowable value for the parameter. |
|
Specifies the minimum allowable value for the parameter. |
|
Dictates whether the parameter is required for template operations. Choices:
|
|
Contains options for parameter selection when a choice is available. |
|
Lists the default values that are preselected. |
|
A unique identifier for the selection entity, represented as a UUID. |
|
Specifies the type of selection, such as ‘SINGLE_SELECT’ or ‘MULTI_SELECT’. |
|
A dictionary of available values for selection. |
|
Refers to a keyword, label, or metadata assigned to a template. |
|
A unique identifier for the tag, represented as a UUID. |
|
The name of the tag. |
|
The current version of template. |
|
Template version comments. |
|
To deploy the template to the devices based on either list of site provisionig details with further filtering criteria like device family, device role, device tag or by providing the device specific details which includes device_ips, device_hostnames, serial_numbers or mac_addresses. |
|
Details specific to devices where the template will be deployed, including lists of device IPs, hostnames, serial numbers, or MAC addresses. |
|
A list of hostnames of the devices where the template will be deployed. |
|
A list of IP addresses of the devices where the template will be deployed. |
|
A list of MAC addresses of the devices where the template will be deployed. |
|
A list of serial numbers of the devices where the template will be deployed. |
|
Boolean flag to indicate whether the template should be forcefully pushed to the devices, overriding any existing configuration. Choices:
|
|
Boolean flag indicating whether the template is composite, which means the template is built using multiple smaller templates. Choices:
|
|
Provide the name of project under which the template is available. |
|
Parameters related to site-based provisioning, allowing the deployment of templates to devices associated with specific sites, with optional filtering by device family, role, or tag. |
|
Family of the devices (e.g., switches, routers) used to filter devices for template deployment. |
|
Role of the devices (e.g., access, core, edge) used to filter devices for template deployment. |
|
Specific device tag used to filter devices for template deployment. |
|
Name of the site where the devices are associated for provisioning. |
|
Name of the template to be deployed. |
|
A list of parameter name-value pairs used for customizing the template with specific values for each device. |
|
Name of the parameter in the template that needs to be replaced with a specific value. |
|
Value assigned to the parameter for deployment to devices. |
|
Perform export on the projects and templates. |
|
Export the project(s) details. |
|
Export the template(s) details. |
|
Name of the project under the template available. |
|
Name of the template which we need to be exported. |
|
Perform import on the projects and templates. |
|
Import the projects. |
|
Determines whether to create a new version of the project with the imported contents. If set to true and the project already exists, a new version will be created. If false, the operation will fail with a ‘Project already exists’ error if the project already exists. Choices:
|
|
Directly imports configuration data into the system using the provided payload. Offers an alternative to ‘project_file’ for importing configurations without referencing an external file. Ignored if ‘project_file’ is also provided. |
|
Name of the project to be imported. |
|
Specifies the path to a JSON file that contains the import project configuration. If both ‘project_file’ and ‘payload’ are provided, the ‘project_file’ will be given priority. |
|
Import the templates. |
|
DoVersion query parameter. If this flag is true, creates a new version of the template with the imported contents, if the templates already exists. ” If false and if template already exists, then operation fails with ‘Template already exists’ error. Choices:
|
|
The payload parameter is used to directly import configuration data into the system. The payload provides an alternative way to import configurations without the need to reference an external file. If both ‘template_file’ and ‘payload’ are provided, the ‘template_file’ will be given priority. |
|
Identifies the creator of the template. |
|
Specifies if the template is composite. Choices:
|
|
Refer to a set of templates within the main template to define more complex or modular configurations. This is particularly useful in systems that support hierarchical or nested templates. Here parent templates may contain child templates to form a complete configuration. |
|
Specifies if the template is composite. Choices:
|
|
Provides a description of the template. |
|
List of dictionaries details the types of devices that the templates can be applied to. |
|
Denotes the family to which the device belongs. Choices:
|
|
Specifies the series classification of the device. |
|
Describes the exact type of the device. |
|
Unique identifier for the template, represented as a UUID. |
|
Programming language used for templating. Options are ‘JINJA’ for Jinja templating or ‘VELOCITY’ for Apache Velocity. Choices:
|
|
Designation of the template, serving as its unique name. |
|
Title of the project within which the template is categorized and managed. |
|
A list of dictionaries representing tags associated with the Configuration Template during creation. |
|
The unique identifier for each tag, presented as a UUID. |
|
The descriptive label or name assigned to the tag. |
|
The actual script or code constituting the body of the template. |
|
The customization of the contents within the template. |
|
Associates the parameter with its source. |
|
Specifies a user-defined ordering for the parameter. |
|
Identifies the data type of the parameter (e.g., string, integer, boolean). |
|
Establishes a default value for the parameter, used if no other value is provided. |
|
Provides a descriptive explanation of the parameter’s purpose. |
|
The name of the parameter as displayed to users. |
|
Categorizes the parameter into a named group for organizational purposes. |
|
A unique identifier for the parameter, formatted as a UUID. |
|
Gives guidance or instructions regarding the parameter’s use. |
|
A unique key that identifies the parameter within the template. |
|
Indicates whether the entry is not to be treated as a parameter. Choices:
|
|
Determines the sequence in which the parameter appears relative to others. |
|
Specifies if the parameter should be treated as an array. Choices:
|
|
The name of the parameter. |
|
Denotes the provider associated with the parameter. |
|
Defines the permissible range for the parameter’s value. |
|
Unique identifier for the range, represented as a UUID. |
|
Specifies the maximum allowable value for the parameter. |
|
Specifies the minimum allowable value for the parameter. |
|
Dictates whether the parameter is required for template operations. Choices:
|
|
Contains options for parameter selection when a choice is available. |
|
Lists the default values that are preselected. |
|
A unique identifier for the selection entity, represented as a UUID. |
|
Specifies the type of selection, such as ‘SINGLE_SELECT’ or ‘MULTI_SELECT’. |
|
A dictionary of available values for selection. |
|
The current version of template. |
|
Specifies the sequence in which custom parameters or variables should be arranged within the template. Choices:
|
|
List of dictionaries details the types of devices that the templates can be applied to. |
|
Denotes the family to which the device belongs. Choices:
|
|
Specifies the series classification of the device. |
|
Describes the exact type of the device. |
|
Define failure policy if template provisioning fails. failure_policy will be enabled only when the composite is set to True. Choices:
|
|
A unique identifier, represented as a UUID. |
|
Programming language used for templating. Options are ‘JINJA’ for Jinja templating or ‘VELOCITY’ for Apache Velocity. Choices:
|
|
Narrative that elaborates on the purpose and scope of the project. |
|
Title of the project within which the template is categorized and managed. |
|
Applicable device software type. This field is required to create a new template. Choices:
|
|
Applicable device software version. |
|
The actual script or code constituting the body of the template. |
|
Provides a overview of the template. |
|
Name of template. This field is required to create a new template. |
|
The customization of the contents within the template. |
|
Associates the parameter with its source. |
|
Specifies a user-defined ordering for the parameter. |
|
Identifies the data type of the parameter (e.g., string, integer, boolean). |
|
Establishes a default value for the parameter, used if no other value is provided. |
|
Provides a descriptive explanation of the parameter’s purpose. |
|
The name of the parameter as displayed to users. |
|
Categorizes the parameter into a named group for organizational purposes. |
|
A unique identifier for the parameter, formatted as a UUID. |
|
Gives guidance or instructions regarding the parameter’s use. |
|
A unique key that identifies the parameter within the template. |
|
Indicates whether the entry is not to be treated as a parameter. Choices:
|
|
Determines the sequence in which the parameter appears relative to others. |
|
Specifies if the parameter should be treated as an array. Choices:
|
|
The name of the parameter. |
|
Denotes the provider associated with the parameter. |
|
Defines the permissible range for the parameter’s value. |
|
Unique identifier for the range, represented as a UUID. |
|
Specifies the maximum allowable value for the parameter. |
|
Specifies the minimum allowable value for the parameter. |
|
Dictates whether the parameter is required for template operations. Choices:
|
|
Contains options for parameter selection when a choice is available. |
|
Lists the default values that are preselected. |
|
A unique identifier for the selection entity, represented as a UUID. |
|
Specifies the type of selection, such as ‘SINGLE_SELECT’ or ‘MULTI_SELECT’. |
|
A dictionary of available values for selection. |
|
Refers to a keyword, label, or metadata assigned to a template. |
|
A unique identifier for the tag, represented as a UUID. |
|
The name of the tag. |
|
The current version of template. |
|
ProjectName path parameter. Project name to create template under the project. |
|
Specifies the path to a JSON file that contains an import template. If both ‘template_file’ and ‘payload’ are provided, the ‘template_file’ will be given priority. |
|
Set to True to verify the Cisco Catalyst Center after applying the playbook config. Choices:
|
|
Defines the timeout in seconds for API calls to retrieve task details. If the task details are not received within this period, the process will end, and a timeout notification will be logged. Default: |
|
Indicates whether debugging is enabled in the Cisco Catalyst Center SDK. Choices:
|
|
The hostname of the Cisco Catalyst Center. |
|
Flag to enable/disable playbook execution logging. When true and dnac_log_file_path is provided, - Create the log file at the execution location with the specified name. When true and dnac_log_file_path is not provided, - Create the log file at the execution location with the name ‘dnac.log’. When false, - Logging is disabled. If the log file doesn’t exist, - It is created in append or write mode based on the “dnac_log_append” flag. If the log file exists, - It is overwritten or appended based on the “dnac_log_append” flag. Choices:
|
|
Determines the mode of the file. Set to True for ‘append’ mode. Set to False for ‘write’ mode. Choices:
|
|
Governs logging. Logs are recorded if dnac_log is True. If path is not specified, - When ‘dnac_log_append’ is True, ‘dnac.log’ is generated in the current Ansible directory; logs are appended. - When ‘dnac_log_append’ is False, ‘dnac.log’ is generated; logs are overwritten. If path is specified, - When ‘dnac_log_append’ is True, the file opens in append mode. - When ‘dnac_log_append’ is False, the file opens in write (w) mode. - In shared file scenarios, without append mode, content is overwritten after each module execution. - For a shared log file, set append to False for the 1st module (to overwrite); for subsequent modules, set append to True. Default: |
|
Sets the threshold for log level. Messages with a level equal to or higher than this will be logged. Levels are listed in order of severity [CRITICAL, ERROR, WARNING, INFO, DEBUG]. CRITICAL indicates serious errors halting the program. Displays only CRITICAL messages. ERROR indicates problems preventing a function. Displays ERROR and CRITICAL messages. WARNING indicates potential future issues. Displays WARNING, ERROR, CRITICAL messages. INFO tracks normal operation. Displays INFO, WARNING, ERROR, CRITICAL messages. DEBUG provides detailed diagnostic info. Displays all log messages. Default: |
|
The password for authentication at the Cisco Catalyst Center. |
|
Specifies the port number associated with the Cisco Catalyst Center. Default: |
|
Specifies the interval in seconds between successive calls to the API to retrieve task details. Default: |
|
The username for authentication at the Cisco Catalyst Center. Default: |
|
Flag to enable or disable SSL certificate verification. Choices:
|
|
Specifies the version of the Cisco Catalyst Center that the SDK should use. Default: |
|
The state of Cisco Catalyst Center after module completion. Choices:
|
|
Flag for Cisco Catalyst Center SDK to enable the validation of request bodies against a JSON schema. Choices:
|
Notes
Note
SDK Method used are configuration_templates.ConfigurationTemplates.create_template, configuration_templates.ConfigurationTemplates.deletes_the_template, configuration_templates.ConfigurationTemplates.update_template, configuration_templates.ConfigurationTemplates.export_projects, configuration_templates.ConfigurationTemplates.export_templates, configuration_templates.ConfigurationTemplates.imports_the_projects_provided, configuration_templates.ConfigurationTemplates.imports_the_templates_provided,
Paths used are post /dna/intent/api/v1/template-programmer/project/{projectId}/template, delete /dna/intent/api/v1/template-programmer/template/{templateId}, put /dna/intent/api/v1/template-programmer/template, post /dna/intent/api/v1/template-programmer/project/name/exportprojects, post /dna/intent/api/v1/template-programmer/template/exporttemplates, post /dna/intent/api/v1/template-programmer/project/importprojects, post /dna/intent/api/v1/template-programmer/project/name/{projectName}/template/importtemplates,
Does not support
check_mode
The plugin runs on the control node and does not use any ansible connection plugins instead embedded connection manager from Cisco Catalyst Center SDK
The parameters starting with dnac_ are used by the Cisco Catalyst Center Python SDK to establish the connection
Examples
- name: Create a new template.
cisco.dnac.template_workflow_manager:
dnac_host: "{{dnac_host}}"
dnac_username: "{{dnac_username}}"
dnac_password: "{{dnac_password}}"
dnac_verify: "{{dnac_verify}}"
dnac_port: "{{dnac_port}}"
dnac_version: "{{dnac_version}}"
dnac_debug: "{{dnac_debug}}"
dnac_log: True
dnac_log_level: "{{dnac_log_level}}"
state: merged
config_verify: True
config:
- configuration_templates:
author: string
composite: true
custom_params_order: true
description: string
device_types:
- product_family: string
product_series: string
product_type: string
failure_policy: string
id: string
language: string
name: string
project_name: string
project_description: string
software_type: string
software_version: string
tags:
- id: string
name: string
template_content: string
version: string
- name: Export the projects.
cisco.dnac.template_workflow_manager:
dnac_host: "{{dnac_host}}"
dnac_username: "{{dnac_username}}"
dnac_password: "{{dnac_password}}"
dnac_verify: "{{dnac_verify}}"
dnac_port: "{{dnac_port}}"
dnac_version: "{{dnac_version}}"
dnac_debug: "{{dnac_debug}}"
dnac_log: True
dnac_log_level: "{{dnac_log_level}}"
state: merged
config_verify: True
config:
export:
project:
- string
- string
- name: Export the templates.
cisco.dnac.template_workflow_manager:
dnac_host: "{{dnac_host}}"
dnac_username: "{{dnac_username}}"
dnac_password: "{{dnac_password}}"
dnac_verify: "{{dnac_verify}}"
dnac_port: "{{dnac_port}}"
dnac_version: "{{dnac_version}}"
dnac_debug: "{{dnac_debug}}"
dnac_log: True
dnac_log_level: "{{dnac_log_level}}"
state: merged
config_verify: True
config:
export:
template:
- project_name : string
template_name: string
- project_name: string
template_name: string
- name: Import the Projects.
cisco.dnac.template_workflow_manager:
dnac_host: "{{dnac_host}}"
dnac_username: "{{dnac_username}}"
dnac_password: "{{dnac_password}}"
dnac_verify: "{{dnac_verify}}"
dnac_port: "{{dnac_port}}"
dnac_version: "{{dnac_version}}"
dnac_debug: "{{dnac_debug}}"
dnac_log: True
dnac_log_level: "{{dnac_log_level}}"
state: merged
config_verify: True
config:
import:
project:
do_version: false
payload:
- name: string
- name: string
- name: Import the Templates.
cisco.dnac.template_workflow_manager:
dnac_host: "{{dnac_host}}"
dnac_username: "{{dnac_username}}"
dnac_password: "{{dnac_password}}"
dnac_verify: "{{dnac_verify}}"
dnac_port: "{{dnac_port}}"
dnac_version: "{{dnac_version}}"
dnac_debug: "{{dnac_debug}}"
dnac_log: True
dnac_log_level: "{{dnac_log_level}}"
state: merged
config_verify: True
config:
import:
template:
do_version: false
project_name: string
template_file: string
- name: Deploy the given template to the devices based on site specific details and other filtering mode
cisco.dnac.template_workflow_manager:
dnac_host: "{{dnac_host}}"
dnac_username: "{{dnac_username}}"
dnac_password: "{{dnac_password}}"
dnac_verify: "{{dnac_verify}}"
dnac_port: "{{dnac_port}}"
dnac_version: "{{dnac_version}}"
dnac_debug: "{{dnac_debug}}"
dnac_log: True
dnac_log_level: "{{dnac_log_level}}"
state: merged
config_verify: True
config:
deploy_template:
project_name: "Sample_Project"
template_name: "Sample Template"
force_push: true
template_parameters:
- param_name: "vlan_id"
param_value: "1431"
- param_name: "vlan_name"
param_value: "testvlan31"
site_provisioning_details:
- site_name: "Global/Bangalore/Building14/Floor1"
device_family: "Switches and Hubs"
- name: Deploy the given template to the devices based on device specific details
cisco.dnac.template_workflow_manager:
dnac_host: "{{dnac_host}}"
dnac_username: "{{dnac_username}}"
dnac_password: "{{dnac_password}}"
dnac_verify: "{{dnac_verify}}"
dnac_port: "{{dnac_port}}"
dnac_version: "{{dnac_version}}"
dnac_debug: "{{dnac_debug}}"
dnac_log: True
dnac_log_level: "{{dnac_log_level}}"
state: merged
config_verify: True
config:
deploy_template:
project_name: "Sample_Project"
template_name: "Sample Template"
force_push: true
template_parameters:
- param_name: "vlan_id"
param_value: "1431"
- param_name: "vlan_name"
param_value: "testvlan31"
device_details:
- device_ips: ["10.1.2.1", "10.2.3.4"]
- name: Delete the given project or template from the Cisco Catalyst Center
cisco.dnac.template_workflow_manager:
dnac_host: "{{dnac_host}}"
dnac_username: "{{dnac_username}}"
dnac_password: "{{dnac_password}}"
dnac_verify: "{{dnac_verify}}"
dnac_port: "{{dnac_port}}"
dnac_version: "{{dnac_version}}"
dnac_debug: "{{dnac_debug}}"
dnac_log: True
dnac_log_level: "{{dnac_log_level}}"
state: deleted
config_verify: True
config:
configuration_templates:
project_name: "Sample_Project"
template_name: "Sample Template"
language: "velocity"
software_type: "IOS-XE"
device_types:
- product_family: "Switches and Hubs"
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
---|---|
A dictionary with versioning details of the template as returned by the Cisco Catalyst Center Python SDK Returned: always Sample: |
|
A list with the response returned by the Cisco Catalyst Center Python SDK Returned: always Sample: |
|
A dictionary with the exisiting template deatails as returned by the Cisco Catalyst Center Python SDK Returned: always Sample: |
|
Details of the templates in the list as returned by the Cisco Catalyst Center Python SDK Returned: always Sample: |
|
Details of the projects in the list as returned by the Cisco Catalyst Center Python SDK Returned: always Sample: |