cisco.dnac.sda_fabric_devices_workflow_manager module -- Manage SDA fabric devices in Cisco Catalyst Center.

Note

This module is part of the cisco.dnac collection (version 6.24.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_workflow_manager.

New in cisco.dnac 6.21.0

Synopsis

  • Perform operations on SDA fabric devices, including adding, updating, and deleting fabric devices.

  • Manage L2 handoffs for fabric devices, including adding and deleting configurations.

  • Manage L3 handoffs for fabric devices with IP transit, including adding, updating, and deleting configurations.

  • Manage L3 handoffs for fabric devices with SDA transit, including adding, updating, and deleting configurations.

Requirements

The below requirements are needed on the host that executes this module.

  • dnacentersdk >= 2.9.2

  • python >= 3.9

Parameters

Parameter

Comments

config

list / elements=dictionary / required

A list of SDA fabric device configurations associated with fabric sites.

Each entry in the list represents the configurations for devices within a fabric site.

fabric_devices

dictionary

Configuration details for SDA fabric devices associated with a fabric site.

device_config

list / elements=dictionary / required

A list of devices with their respective border settings, L2 handoff, L3 handoff with SDA transit, and L3 handoff with IP transit.

borders_settings

dictionary

Effective only when the 'device_roles' contains BORDER_NODE.

This parameter is required when adding the device to a fabric site with the `BORDER_NODE` role.

Updates to `borders_settings` are allowed after the initial configuration.

Border type can be Layer2 or Layer3.

Border type can be Layer2 or Layer3, identified based on the presence of L2 Handoff or L3 Handoff with IP or SDA transit.

layer2_handoff

list / elements=dictionary

Adds layer 2 handoffs in fabric devices.

This parameter cannots be updated.

Configured while transferring a device's data traffic at Layer 2 (Data Link layer).

If 'layer2_handoff' is set, the border type will be considered as Layer2.

external_vlan_id

integer

Represents to the VLAN identifier used for traffic that exits the fabric to external networks.

Should be unique across the entire fabric site settings.

This parameter is required for all operations in 'layer2_handoff'.

The 'external_vlan_id' can range from 1 to 4094, excluding 1, 1002-1005, 2046, and 4094.

interface_name

string

Refers to the specific network interface in the border device.

This parameter is required for all operations in L2 Handoff.

The 'interface_name' cannot be updated.

internal_vlan_id

integer

Represents the VLAN identifier used within the fabric for traffic segmentation among devices.

Should be unique across the entire fabric site settings.

This parameter is required for all operations in layer2_handoff.

The 'internal_vlan_id' can range from 1 to 4094, excluding 1, 1002-1005, 2046, and 4094.

layer3_handoff_ip_transit

list / elements=dictionary

Adds layer 3 handoffs with ip transit in fabric devices.

Configured when IP traffic is routed from the SDA fabric to external networks.

If 'layer3_handoff_ip_transit' is set, border type will be considered as Layer3.

external_connectivity_ip_pool_name

string

Denotes the IP address range allocated for communication between the SDA fabric and external networks.

This parameter is required for adding the L3 Handoff with IP transit.

The IP pool must be reserved in the fabric site.

If `external_connectivity_ip_pool_name` is specified, there is no need to set the local and remote addresses.

Specifying `external_connectivity_ip_pool_name` will automatically configure the local and remote addresses.

If both are set, `external_connectivity_ip_pool_name` takes precedence.

Updating IP addresses is not permitted.

interface_name

string

Refers to the specific network interface in the border device.

This parameter is required for all operations in L3 Handoff with IP transit.

This parameter cannot be updated after being set.

local_ip_address

string

IP address assigned to a device's interface within the fabric.

The 'local_ip_address' is for IPv4.

Both 'local_ip_address' and 'remote_ip_address' must fall within the same subnet.

Either local and remote addresses or `external_connectivity_ip_pool_name` is required.

If local and remote addresses are provided with 'external_connectivity_ip_pool_name', `external_connectivity_ip_pool_name` takes precedence.

local_ipv6_address

string

IP address assigned to a device's interface within the fabric.

The local_ipv6_address is for IPv6.

Both 'local_ipv6_address' and 'remote_ipv6_address' must fall within the same subnet.

If 'remote_ipv6_address' is provided, then 'local_ipv6_address' is required.

If local and remote addresses are provided with 'external_connectivity_ip_pool_name', `external_connectivity_ip_pool_name` takes precedence.

remote_ip_address

string

IP address of a device located outside the fabric network, often used for BGP peering.

The 'remote_ip_address' is for IPv4.

Both 'local_ip_address' and 'remote_ip_address' must fall within the same subnet.

Either local and remote addresses or `external_connectivity_ip_pool_name` is required.

If local and remote addresses are provided with 'external_connectivity_ip_pool_name', `external_connectivity_ip_pool_name` takes precedence.

remote_ipv6_address

string

IP address of a device located outside the fabric network, often used for BGP peering.

The 'remote_ipv6_address' is for IPv6.

Both 'local_ipv6_address' and 'remote_ipv6_address' must fall within the same subnet.

If 'local_ipv6_address' is provided, then 'remote_ipv6_address' is required.

If local and remote addresses are provided with 'external_connectivity_ip_pool_name', `external_connectivity_ip_pool_name` takes precedence.

tcp_mss_adjustment

integer

Allows the modification of the Maximum Segment Size in TCP packets.

The 'tcp_mss_adjustment' can be set from 500 to 1440.

This parameter can be updated after being initially set.

transit_network_name

string

Network that connects multiple SDA fabrics or networks.

Required for all operations in L3 Handoff with IP transit.

It is not possible to update `transit_network_name` after initial configuration.

virtual_network_name

string

Refers to the logical segmentation of the network, grouping devices into isolated virtual networks.

Either `virtual_network_name` or `vlan_id` is required for all operations in L3 Handoff with IP transit.

vlan_id

integer

Unique identifier assigned to a Virtual Local Area Network (VLAN).

Should be unique across the entire fabric site settings.

The 'vlan_id' can range from 1 to 4094, excluding 1, 1002-1005, 2046, and 4094.

Either `virtual_network_name` or `vlan_id` is required for all operations in L3 Handoff with IP transit.

This parameter cannot be updated once set.

layer3_handoff_sda_transit

dictionary

Adds layer 3 handoffs with SDA transit in fabric devices.

Configured when routing traffic is routed from the SDA fabric to external networks.

If 'layer3_handoff_sda_transit' is set, border type will be considered as Layer3.

affinity_id_decider

integer

If the 'affinity_id_prime' value is the same, the 'affinity_id_decider' value is used as a tiebreaker.

The lower the relative value of 'affinity_id_decider', the higher the preference.

The 'affinity_id_decider' ranges from 0 to 2147483647.

The 'affinity_id_decider' can be updated.

affinity_id_prime

integer

It supersedes the border priority to determine border node preference.

The lower the relative value of 'affinity_id_prime', the higher the preference.

Resources with the same affinity ID are treated similarly and affinity_id_decider decides the priority.

The 'affinity_id_prime' ranges from 0 to 2147483647.

The 'affinity_id_prime' can be updated.

connected_to_internet

boolean

Set this true to allow associated site to provide internet access to other sites through SDA.

Default value is false.

This parameter can be updated.

Choices:

is_multicast_over_transit_enabled

boolean

Set this true to configure native multicast over multiple sites that are connected to an SDA transit.

Default value is false.

This parameter can be updated.

Choices:

transit_network_name

string

Network that connects multiple SDA fabrics or networks.

This parameter is required for all operations in L3 Handoff with SDA transit.

The transit_network_name cannot be updated.

layer3_settings

list / elements=dictionary

Configures a device with a Layer3 border type.

border_priority

integer

Sets the preference level for this Border Node when multiple border nodes are present.

Higher-priority nodes are favored for routing traffic to external networks.

Acceptable range is from 1 to 9. If not set, the default value is 10.

This parameter can be updated.

Default: :ansible-option-default:`10`

import_external_routes

boolean

Determines whether routes from external networks are imported into the fabric.

Enhances security by limiting route usage to internal routes.

The 'import_external_routes' cannot be updated.

Choices:

is_default_exit

boolean

Indicates whether this Border Node serves as the default gateway for traffic exiting the virtual network.

The `is_default_exit` cannot be updated.

Choices:

local_autonomous_system_number

string

Identifies the local autonomous system in BGP routing.

This parameter is required when adding a device with the `BORDER_NODE` role.

The `local_autonomous_system_number` cannot be updated once set.

Acceptable range is from 1 to 4,294,967,295.

Dot notation (1.0 to 65535.65535) is also allowed. For example, 65534.65535.

prepend_autonomous_system_count

integer

Increases the AS path length artificially when advertising routes via BGP.

It makes the route less attractive to external peers.

Acceptable range is from 1 to 10. If not set, the default value is 0.

This parameter can be updated.

Default: :ansible-option-default:`0`

delete_fabric_device

boolean

Effective only when the state is deleted.

Set to true to delete the device from the fabric site, or false to retain it.

Choices:

device_ip

string / required

IP address of the device to be added to the fabric site.

Mandatory parameter for all operations under fabric_devices.

Device must be provisioned to the site prior to configuration.

device_roles

list / elements=string

Specifies the role(s) of the device within the fabric site.

This parameter is required when adding the device to the fabric site.

The device roles cannot be updated once assigned.

At least one device must be a CONTROL_PLANE_NODE to assign roles to other devices.

Available roles, - CONTROL_PLANE_NODE - Manages the mapping of endpoint IP addresses to their location within the network using LISP, enabling mobility. - EDGE_NODE - Connects endpoints to the SDA network, handling policy enforcement, segmentation, and communication with the control plane. - BORDER_NODE - Acts as the gateway between the fabric and external networks, managing traffic entering or exiting the SDA environment. - WIRELESS_CONTROLLER_NODE - Manages and controls wireless access points and devices within the network.

For 'WIRELESS_CONTROLLER_NODE', the check for the provisioning status will be added in 2.3.7.6 SDK.

Choices:

route_distribution_protocol

list / elements=string

Specifies the Route Distribution Protocol for the Control Plane Device.

The route distribution protocol manages routing information across network segments.

Available protocols, - LISP_BGP - Location/ID Separation Protocol with a publish-subscribe mechanism for distributing routing information. - LISP_PUB_SUB - Location/ID Separation Protocol with BGP, where BGP serves as the control plane to advertise and manage routing information within LISP networks.

Choices:

Default: :ansible-option-default:`["LISP\_BGP"]`

fabric_name

string / required

Name of the SDA fabric site.

Mandatory parameter for all operations under fabric_devices.

The fabric site must already be created before configuring devices.

A Fabric Site is composed of networking devices operating in SD-Access Fabric roles.

A fabric site consists of networking devices in SD-Access Fabric roles, including Border Nodes, Control Plane Nodes, and Edge Nodes.

A Fabric sites may also include Fabric Wireless LAN Controllers and Fabric Wireless Access Points.

config_verify

boolean

Set to True to verify the Cisco Catalyst Center after applying the playbook config.

Choices:

dnac_api_task_timeout

integer

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`

dnac_debug

boolean

Indicates whether debugging is enabled in the Cisco Catalyst Center SDK.

Choices:

dnac_host

string / required

The hostname of the Cisco Catalyst Center.

dnac_log

boolean

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:

dnac_log_append

boolean

Determines the mode of the file. Set to True for 'append' mode. Set to False for 'write' mode.

Choices:

dnac_log_file_path

string

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"`

dnac_log_level

string

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"`

dnac_password

string

The password for authentication at the Cisco Catalyst Center.

dnac_port

string

Specifies the port number associated with the Cisco Catalyst Center.

Default: :ansible-option-default:`"443"`

dnac_task_poll_interval

integer

Specifies the interval in seconds between successive calls to the API to retrieve task details.

Default: :ansible-option-default:`2`

dnac_username

aliases: user

string

The username for authentication at the Cisco Catalyst Center.

Default: :ansible-option-default:`"admin"`

dnac_verify

boolean

Flag to enable or disable SSL certificate verification.

Choices:

dnac_version

string

Specifies the version of the Cisco Catalyst Center that the SDK should use.

Default: :ansible-option-default:`"2.2.3.3"`

state

string

The state of Cisco Catalyst Center after module completion.

Choices:

validate_response_schema

boolean

Flag for Cisco Catalyst Center SDK to enable the validation of request bodies against a JSON schema.

Choices:

Notes

Note

  • SDK Method used are site_design.SiteDesign.get_sites, network_settings.NetworkSettings.get_reserve_ip_subpool, devices.Devices.get_device_list, sda.Sda.get_transit_networks, sda.Sda.get_layer3_virtual_networks, sda.Sda.get_fabric_sites, sda.Sda.get_fabric_zones, sda.Sda.get_provisioned_devices, sda.Sda.get_fabric_devices_layer2_handoffs, sda.Sda.get_fabric_devices_layer3_handoffs_with_sda_transit, sda.Sda.get_fabric_devices_layer3_handoffs_with_ip_transit, sda.Sda.get_fabric_devices, sda.Sda.add_fabric_devices, sda.Sda.add_control_plane_device, sda.Sda.add_fabric_devices_layer2_handoffs, sda.Sda.add_fabric_devices_layer3_handoffs_with_sda_transit, sda.Sda.add_fabric_devices_layer3_handoffs_with_ip_transit, sda.Sda.update_fabric_devices, sda.Sda.update_fabric_devices_layer3_handoffs_with_sda_transit, sda.Sda.update_fabric_devices_layer3_handoffs_with_ip_transit, sda.Sda.delete_fabric_device_layer2_handoff_by_id, sda.Sda.delete_fabric_device_by_id, sda.Sda.delete_fabric_device_layer3_handoffs_with_sda_transit, sda.Sda.delete_fabric_device_layer3_handoff_with_ip_transit_by_id, task.Task.get_tasks_by_id, task.Task.get_task_details_by_id,

  • Paths used are get /dna/intent/api/v1/sites get /dna/intent/api/v1/reserve-ip-subpool get /dna/intent/api/v1/network-device get /dna/intent/api/v1/sda/transitNetworks get /dna/intent/api/v1/sda/layer3VirtualNetworks get /dna/intent/api/v1/sda/fabricSites get /dna/intent/api/v1/sda/fabricZones get /dna/intent/api/v1/sda/provisionDevices get /dna/intent/api/v1/sda/fabricDevices/layer2Handoffs get /dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/sdaTransits get /dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/ipTransits get /dna/intent/api/v1/sda/fabricDevices post /dna/intent/api/v1/sda/fabricDevices post /dna/intent/api/v1/business/sda/control-plane-device post /dna/intent/api/v1/sda/fabricDevices/layer2Handoffs post /dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/sdaTransits post /dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/ipTransits put /dna/intent/api/v1/sda/fabricDevices put /dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/sdaTransits put /dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/ipTransits delete /dna/intent/api/v1/sda/fabricDevices/${id} delete /dna/intent/api/v1/sda/fabricDevices/layer2Handoffs/${id} delete /dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/sdaTransits delete /dna/intent/api/v1/sda/fabricDevices/layer3Handoffs/ipTransits/${id} get /dna/intent/api/v1/tasks/${id} get /dna/intent/api/v1/tasks/${id}/detail

  • 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 SDA fabric device with device role as CONTROL_PLANE_NODE
  cisco.dnac.sda_fabric_devices_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:
    - fabric_devices:
        fabric_name: Global/USA/SAN-JOSE
        device_config:
        - device_ip: 10.0.0.1
          device_roles: [CONTROL_PLANE_NODE]
          route_distribution_protocol: LISP_PUB_SUB

- name: Create SDA fabric device with device role as CONTROL_PLANE_NODE, EDGE_NODE
  cisco.dnac.sda_fabric_devices_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:
    - fabric_devices:
        fabric_name: Global/USA/SAN-JOSE
        device_config:
        - device_ip: 10.0.0.1
          device_roles: [CONTROL_PLANE_NODE, EDGE_NODE]

- name: Create SDA fabric device with device role as CONTROL_PLANE_NODE, EDGE_NODE, BORDER_NODE
  cisco.dnac.sda_fabric_devices_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:
    - fabric_devices:
        fabric_name: Global/USA/SAN-JOSE
        device_config:
        - device_ip: 10.0.0.1
          device_roles: [CONTROL_PLANE_NODE, EDGE_NODE, BORDER_NODE]
          borders_settings:
            layer3_settings:
              local_autonomous_system_number: 1234
              is_default_exit: true
              import_external_routes: true
              border_priority: 1
              prepend_autonomous_system_count: 1

- name: Update the SDA fabric device with the device roles with BORDER_NODE and add L2 Handoff
  cisco.dnac.sda_fabric_devices_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:
    - fabric_devices:
        fabric_name: Global/USA/SAN-JOSE
        device_config:
        - device_ip: 10.0.0.1
          device_roles: [CONTROL_PLANE_NODE, BORDER_NODE]
          borders_settings:
            layer3_settings:
              local_autonomous_system_number: 1234
              is_default_exit: true
              import_external_routes: true
              border_priority: 2
              prepend_autonomous_system_count: 2
            layer2_handoff:
            - interface_name: FortyGigabitEthernet1/1/1
              internal_vlan_id: 550
              external_vlan_id: 551


- name: Add the L3 Handoff with SDA Transit to the SDA fabric device
  cisco.dnac.sda_fabric_devices_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:
    - fabric_devices:
        fabric_name: Global/USA/SAN-JOSE
        device_config:
        - device_ip: 10.0.0.1
          device_roles: [CONTROL_PLANE_NODE, BORDER_NODE]
          borders_settings:
            layer3_handoff_sda_transit:
              transit_network_name: SDA_PUB_SUB_TRANSIT
              affinity_id_prime: 1
              affinity_id_decider: 1
              connected_to_internet: true
              is_multicast_over_transit_enabled: false

- name: Add L3 Handoff with IP Transit to the SDA fabric device with external_connectivity_ip_pool_name
  cisco.dnac.sda_fabric_devices_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:
    - fabric_devices:
        fabric_name: Global/USA/SAN-JOSE
        device_config:
        - device_ip: 10.0.0.1
          device_roles: [CONTROL_PLANE_NODE, BORDER_NODE]
          borders_settings:
            layer3_handoff_ip_transit:
            - transit_network_name: IP_TRANSIT_1
              interface_name: FortyGigabitEthernet1/1/1
              external_connectivity_ip_pool_name: Reserved_sda_test_1
              virtual_network_name: L3VN1
              vlan_id: 440
              tcp_mss_adjustment: 2

- name: Add L3 Handoff with IP Transit to the SDA fabric device with local and remote network
  cisco.dnac.sda_fabric_devices_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:
    - fabric_devices:
        fabric_name: Global/USA/SAN-JOSE
        device_config:
        - device_ip: 10.0.0.1
          device_roles: [CONTROL_PLANE_NODE, BORDER_NODE]
          borders_settings:
            layer3_handoff_ip_transit:
            - transit_network_name: IP_TRANSIT_1
              interface_name: FortyGigabitEthernet1/1/1
              virtual_network_name: L3VN1
              vlan_id: 440
              tcp_mss_adjustment: 510
              local_ip_address: 10.0.0.1/24
              remote_ip_address: 10.0.0.2/24
              local_ipv6_address: 2009:db8::1/64
              remote_ipv6_address: 2009:db8::2/64

- name: Update the border settings of the SDA Devices
  cisco.dnac.sda_fabric_devices_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:
    - fabric_devices:
        fabric_name: Global/USA/SAN-JOSE
        device_config:
        - device_ip: 10.0.0.1
          device_roles: [CONTROL_PLANE_NODE, BORDER_NODE]
          borders_settings:
            layer3_settings:
              local_autonomous_system_number: 1234
              is_default_exit: false
              import_external_routes: false
              border_priority: 1
              prepend_autonomous_system_count: 3

- name: Update the L3 Handoffs with SDA Transit and IP Transit.
  cisco.dnac.sda_fabric_devices_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:
    - fabric_devices:
        fabric_name: Global/USA/SAN-JOSE
        device_config:
        - device_ip: 10.0.0.1
          device_roles: [CONTROL_PLANE_NODE, BORDER_NODE]
          borders_settings:
            layer3_handoff_sda_transit:
              transit_network_name: SDA_PUB_SUB_TRANSIT
              affinity_id_prime: 2
              affinity_id_decider: 2
              connected_to_internet: false
              is_multicast_over_transit_enabled: true

            layer3_handoff_ip_transit:
            - transit_network_name: IP_TRANSIT_1
              interface_name: FortyGigabitEthernet1/1/1
              virtual_network_name: L3VN1
              vlan_id: 440
              tcp_mss_adjustment: 511
              local_ip_address: 10.0.0.1/24
              remote_ip_address: 10.0.0.2/24
              local_ipv6_address: 2009:db8::1/64
              remote_ipv6_address: 2009:db8::2/64

- name: Delete the L2 Handoff
  cisco.dnac.sda_fabric_devices_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:
    - fabric_devices:
        fabric_name: Global/USA/SAN-JOSE
        device_config:
        - device_ip: 10.0.0.1
          borders_settings:
            layer2_handoff:
            - interface_name: FortyGigabitEthernet1/1/1
              internal_vlan_id: 550

- name: Delete the L3 Handoff with SDA Transit
  cisco.dnac.sda_fabric_devices_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:
    - fabric_devices:
        fabric_name: Global/USA/SAN-JOSE
        device_config:
        - device_ip: 10.0.0.1
          borders_settings:
            layer3_handoff_sda_transit:
              transit_network_name: SDA_PUB_SUB_TRANSIT

- name: Delete the L3 Handoff with IP Transit
  cisco.dnac.sda_fabric_devices_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:
    - fabric_devices:
        fabric_name: Global/USA/SAN-JOSE
        device_config:
        - device_ip: 10.0.0.1
          borders_settings:
            layer3_handoff_ip_transit:
            - transit_network_name: IP_TRANSIT_1
              interface_name: FortyGigabitEthernet1/1/1
              virtual_network_name: L3VN1

- name: Delete the device along with L2 Handoff and L3 Handoff
  cisco.dnac.sda_fabric_devices_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:
    - fabric_devices:
        fabric_name: Global/USA/SAN-JOSE
        device_config:
        - device_ip: 10.0.0.1
          delete_fabric_device: true
          borders_settings:
            layer3_handoff_ip_transit:
            - transit_network_name: IP_TRANSIT_1
              interface_name: FortyGigabitEthernet1/1/1
              virtual_network_name: L3VN1

            layer3_handoff_sda_transit:
              transit_network_name: SDA_PUB_SUB_TRANSIT

            layer2_handoff:
            - interface_name: FortyGigabitEthernet1/1/1
              internal_vlan_id: 550

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

response_1

dictionary

A dictionary or list with the response returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: :ansible-rv-sample-value:`{"response": {"taskId": "string", "url": "string"}, "version": "string"}`

response_10

dictionary

A dictionary or list with the response returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: :ansible-rv-sample-value:`{"response": {"taskId": "string", "url": "string"}, "version": "string"}`

response_11

dictionary

A dictionary or list with the response returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: :ansible-rv-sample-value:`{"response": {"taskId": "string", "url": "string"}, "version": "string"}`

response_12

dictionary

A dictionary or list with the response returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: :ansible-rv-sample-value:`{"response": {"taskId": "string", "url": "string"}, "version": "string"}`

response_13

dictionary

response_2

dictionary

A dictionary or list with the response returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: :ansible-rv-sample-value:`{"response": {"taskId": "string", "url": "string"}, "version": "string"}`

response_3

dictionary

A dictionary or list with the response returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: :ansible-rv-sample-value:`{"response": {"taskId": "string", "url": "string"}, "version": "string"}`

response_4

dictionary

A dictionary or list with the response returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: :ansible-rv-sample-value:`{"response": {"taskId": "string", "url": "string"}, "version": "string"}`

response_5

dictionary

A dictionary or list with the response returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: :ansible-rv-sample-value:`{"response": {"taskId": "string", "url": "string"}, "version": "string"}`

response_6

dictionary

A dictionary or list with the response returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: :ansible-rv-sample-value:`{"response": {"taskId": "string", "url": "string"}, "version": "string"}`

response_7

dictionary

A dictionary or list with the response returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: :ansible-rv-sample-value:`{"response": {"taskId": "string", "url": "string"}, "version": "string"}`

response_8

dictionary

A dictionary or list with the response returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: :ansible-rv-sample-value:`{"response": {"taskId": "string", "url": "string"}, "version": "string"}`

response_9

dictionary

A dictionary or list with the response returned by the Cisco Catalyst Center Python SDK

Returned: always

Sample: :ansible-rv-sample-value:`{"response": {"taskId": "string", "url": "string"}, "version": "string"}`

Authors

  • Muthu Rakesh (@MUTHU-RAKESH-27) Madhan Sankaranarayanan (@madhansansel)