cisco.dnac.sda_fabric_devices_playbook_config_generator module -- Generate YAML configurations playbook for 'sda_fabric_devices_workflow_manager' module.
Note
This module is part of the cisco.dnac collection (version 6.49.0).
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.sda_fabric_devices_playbook_config_generator.
New in cisco.dnac 6.49.0
Synopsis
Generates YAML configurations compatible with the 'sda_fabric_devices_workflow_manager' module, reducing the effort required to manually create Ansible playbooks and enabling programmatic modifications.
Captures SDA fabric device configurations including fabric roles, border settings, L2/L3 handoffs, and wireless controller settings from existing deployments.
Requirements
The below requirements are needed on the host that executes this module.
dnacentersdk >= 2.4.5
python >= 3.9
Parameters
Parameter |
Comments |
|---|---|
A dictionary of filters for generating YAML playbook compatible with the `sda_fabric_devices_workflow_manager` module. Filters specify which components to include in the YAML configuration file. If "components_list" is specified, only those components are included, regardless of the filters. If config is not provided or is empty, all configurations for all fabric sites and devices will be generated. This is useful for complete brownfield infrastructure discovery and documentation. |
|
Filters to specify which components to include in the YAML configuration file. If "components_list" is specified, only those components are included, regardless of other filters. If filters for specific components (e.g., fabric_devices) are provided without explicitly including them in components_list, those components will be automatically added to components_list. At least one of components_list or component filters must be provided when config is specified. |
|
List of components to include in the YAML configuration file. Valid values are - "fabric_devices". If specified, only the listed components will be included in the generated YAML file. If not specified, all supported components will be included by default. Choices: |
|
Filters specific to fabric device configuration retrieval. Used to narrow down which fabric sites and devices should be included in the generated YAML file. If no filters are provided, all fabric devices from all fabric sites in Cisco Catalyst Center will be retrieved. |
|
IPv4 address of a specific device to filter by. Retrieves configuration for the specific device within the fabric site. The fabric_name parameter must be provided when using this filter. Example 10.0.0.1, 192.168.1.100. |
|
List of device roles to filter by. Retrieves only devices with the specified fabric roles. The fabric_name parameter must be provided when using this filter. Can be combined with device_ip filter for more specific results. Choices: |
|
Name of the fabric site to filter by. Retrieves all fabric devices configured in this fabric site. This parameter is required when using fabric_devices filters. Example Global/USA/SAN-JOSE, Global/India/Bangalore. |
|
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: :ansible-option-default:`1200` |
|
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: :ansible-option-default:`"dnac.log"` |
|
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: :ansible-option-default:`"WARNING"` |
|
The password for authentication at the Cisco Catalyst Center. |
|
Specifies the port number associated with the Cisco Catalyst Center. Default: :ansible-option-default:`"443"` |
|
Specifies the interval in seconds between successive calls to the API to retrieve task details. Default: :ansible-option-default:`2` |
|
The username for authentication at the Cisco Catalyst Center. Default: :ansible-option-default:`"admin"` |
|
Flag to enable or disable SSL certificate verification. Choices: |
|
Specifies the version of the Cisco Catalyst Center that the SDK should use. Default: :ansible-option-default:`"2.2.3.3"` |
|
Controls how config is written to the YAML file.
This parameter is only relevant when Choices: |
|
Path where the YAML configuration file will be saved. If not provided, the file will be saved in the current working directory with a default file name For example, |
|
The desired state of Cisco Catalyst Center after module execution. Choices: |
|
Flag for Cisco Catalyst Center SDK to enable the validation of request bodies against a JSON schema. Choices: |
Notes
Note
Cisco Catalyst Center >= 2.3.7.6
SDK Methods used are site_design.Sites.get_sites sda.SDA.get_fabric_sites sda.SDA.get_transit_networks sda.SDA.get_fabric_devices sda.SDA.get_fabric_devices_layer2_handoffs sda.SDA.get_fabric_devices_layer3_handoffs_with_ip_transit sda.SDA.get_fabric_devices_layer3_handoffs_with_sda_transit fabric_wireless.FabricWireless.get_sda_wireless_details_from_switches wireless.Wireless.get_primary_managed_ap_locations_for_specific_wireless_controller wireless.Wireless.get_secondary_managed_ap_locations_for_specific_wireless_controller devices.Devices.get_device_list
SDK Paths used are GET /dna/intent/api/v1/sites GET /dna/intent/api/v1/sda/fabricSites GET /dna/intent/api/v1/sda/transitNetworks GET /dna/intent/api/v1/sda/fabricDevices GET /dna/intent/api/v1/sda/fabricDevices/layer2Handoffs GET /dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/ipTransits GET /dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/sdaTransits GET /dna/intent/api/v1/sda/fabricSites/{id}/wirelessSettings GET /dna/intent/api/v1/wirelessControllers/{networkDeviceId}/managedApLocations/primary GET /dna/intent/api/v1/wirelessControllers/{networkDeviceId}/managedApLocations/secondary GET /dna/intent/api/v1/network-device
Does not support
check_modeThe 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
See Also
See also
- cisco.dnac.sda_fabric_devices_workflow_manager
Module for managing SDA fabric devices and their configurations.
Examples
# Example 1: Generate all fabric device configurations for all fabric sites
- name: Generate complete SDA fabric devices configuration
hosts: dnac_servers
vars_files:
- credentials.yml
gather_facts: false
connection: local
tasks:
- name: Generate all SDA fabric device configurations from Cisco Catalyst Center
cisco.dnac.sda_fabric_devices_playbook_config_generator:
dnac_host: "{{ dnac_host }}"
dnac_port: "{{ dnac_port }}"
dnac_username: "{{ dnac_username }}"
dnac_password: "{{ dnac_password }}"
dnac_verify: "{{ dnac_verify }}"
dnac_debug: "{{ dnac_debug }}"
dnac_version: "{{ dnac_version }}"
dnac_log: true
dnac_log_level: DEBUG
dnac_log_append: false
dnac_log_file_path: "{{ dnac_log_file_path }}"
state: gathered
# No config provided - generates all configurations
# Example 2: Generate all configurations with custom file path
- name: Generate complete SDA fabric devices configuration with custom filename
hosts: dnac_servers
vars_files:
- credentials.yml
gather_facts: false
connection: local
tasks:
- name: Generate all SDA fabric device configurations to a specific file
cisco.dnac.sda_fabric_devices_playbook_config_generator:
dnac_host: "{{ dnac_host }}"
dnac_port: "{{ dnac_port }}"
dnac_username: "{{ dnac_username }}"
dnac_password: "{{ dnac_password }}"
dnac_verify: "{{ dnac_verify }}"
dnac_debug: "{{ dnac_debug }}"
dnac_version: "{{ dnac_version }}"
dnac_log: true
dnac_log_level: DEBUG
dnac_log_append: false
dnac_log_file_path: "{{ dnac_log_file_path }}"
state: gathered
file_path: "/tmp/complete_sda_fabric_devices_config.yaml"
file_mode: "overwrite"
# No config provided - generates all configurations
# Example 3: Generate fabric device configurations for a specific fabric site
- name: Generate fabric device configurations for one fabric site
hosts: dnac_servers
vars_files:
- credentials.yml
gather_facts: false
connection: local
tasks:
- name: Export fabric devices from San Jose fabric
cisco.dnac.sda_fabric_devices_playbook_config_generator:
dnac_host: "{{ dnac_host }}"
dnac_port: "{{ dnac_port }}"
dnac_username: "{{ dnac_username }}"
dnac_password: "{{ dnac_password }}"
dnac_verify: "{{ dnac_verify }}"
dnac_debug: "{{ dnac_debug }}"
dnac_version: "{{ dnac_version }}"
dnac_log: true
dnac_log_level: DEBUG
dnac_log_append: false
dnac_log_file_path: "{{ dnac_log_file_path }}"
state: gathered
file_path: "/tmp/san_jose_fabric_devices.yaml"
file_mode: "overwrite"
config:
component_specific_filters:
components_list: ["fabric_devices"]
fabric_devices:
fabric_name: "Global/USA/SAN-JOSE"
# Example 4: Generate configuration for devices with specific roles in a fabric site
- name: Generate configuration for border and control plane devices
hosts: dnac_servers
vars_files:
- credentials.yml
gather_facts: false
connection: local
tasks:
- name: Export border and control plane fabric devices from San Jose fabric
cisco.dnac.sda_fabric_devices_playbook_config_generator:
dnac_host: "{{ dnac_host }}"
dnac_port: "{{ dnac_port }}"
dnac_username: "{{ dnac_username }}"
dnac_password: "{{ dnac_password }}"
dnac_verify: "{{ dnac_verify }}"
dnac_debug: "{{ dnac_debug }}"
dnac_version: "{{ dnac_version }}"
dnac_log: true
dnac_log_level: DEBUG
dnac_log_append: false
dnac_log_file_path: "{{ dnac_log_file_path }}"
state: gathered
file_path: "/tmp/border_and_cp_devices.yaml"
file_mode: "overwrite"
config:
component_specific_filters:
components_list: ["fabric_devices"]
fabric_devices:
fabric_name: "Global/USA/SAN-JOSE"
device_roles: ["BORDER_NODE", "CONTROL_PLANE_NODE"]
# Example 5: Generate configuration for a specific device in a fabric site
- name: Generate configuration for a specific fabric device
hosts: dnac_servers
vars_files:
- credentials.yml
gather_facts: false
connection: local
tasks:
- name: Export specific fabric device configuration
cisco.dnac.sda_fabric_devices_playbook_config_generator:
dnac_host: "{{ dnac_host }}"
dnac_port: "{{ dnac_port }}"
dnac_username: "{{ dnac_username }}"
dnac_password: "{{ dnac_password }}"
dnac_verify: "{{ dnac_verify }}"
dnac_debug: "{{ dnac_debug }}"
dnac_version: "{{ dnac_version }}"
dnac_log: true
dnac_log_level: DEBUG
dnac_log_append: false
dnac_log_file_path: "{{ dnac_log_file_path }}"
state: gathered
file_path: "/tmp/specific_fabric_device.yaml"
file_mode: "overwrite"
config:
component_specific_filters:
components_list: ["fabric_devices"]
fabric_devices:
fabric_name: "Global/USA/SAN-JOSE"
device_ip: "10.0.0.1"
# Example 6: Auto-populate components_list from component filters
- name: Generate configuration with auto-populated components_list
hosts: dnac_servers
vars_files:
- credentials.yml
gather_facts: false
connection: local
tasks:
- name: Export fabric devices without explicit components_list
cisco.dnac.sda_fabric_devices_playbook_config_generator:
dnac_host: "{{ dnac_host }}"
dnac_port: "{{ dnac_port }}"
dnac_username: "{{ dnac_username }}"
dnac_password: "{{ dnac_password }}"
dnac_verify: "{{ dnac_verify }}"
dnac_debug: "{{ dnac_debug }}"
dnac_version: "{{ dnac_version }}"
dnac_log: true
dnac_log_level: DEBUG
dnac_log_append: false
dnac_log_file_path: "{{ dnac_log_file_path }}"
state: gathered
file_path: "/tmp/san_jose_fabric.yaml"
file_mode: "overwrite"
config:
component_specific_filters:
# No components_list specified, but fabric_devices filters are provided
# The 'fabric_devices' component will be automatically added to components_list
fabric_devices:
fabric_name: "Global/USA/SAN-JOSE"
# Example 7: Generate configuration with append mode
- name: Generate and append SDA fabric device configuration
hosts: dnac_servers
vars_files:
- credentials.yml
gather_facts: false
connection: local
tasks:
- name: Append fabric device configurations to existing file
cisco.dnac.sda_fabric_devices_playbook_config_generator:
dnac_host: "{{ dnac_host }}"
dnac_port: "{{ dnac_port }}"
dnac_username: "{{ dnac_username }}"
dnac_password: "{{ dnac_password }}"
dnac_verify: "{{ dnac_verify }}"
dnac_debug: "{{ dnac_debug }}"
dnac_version: "{{ dnac_version }}"
dnac_log: true
dnac_log_level: DEBUG
dnac_log_append: false
dnac_log_file_path: "{{ dnac_log_file_path }}"
state: gathered
file_path: "/tmp/all_fabric_devices.yaml"
file_mode: "append"
config:
component_specific_filters:
components_list: ["fabric_devices"]
fabric_devices:
fabric_name: "Global/India/Bangalore"
device_roles: ["BORDER_NODE"]
Return Values
Common return values are documented here, the following are the fields unique to this module:
Key |
Description |
|---|---|
A dictionary with the response returned by the Cisco Catalyst Center Python SDK Returned: always |
|
A dictionary with the error response returned by the Cisco Catalyst Center Python SDK Returned: on failure |