anta_workflow¶
Note
Always use the FQCN (Fully Qualified Collection Name) arista.avd.anta_workflow
when using this plugin.
This module is in preview mode
This module is not guaranteed to have a backwards compatible interface.
Uses ANTA from Ansible
Synopsis¶
The arista.avd.anta_workflow
module is an Ansible Action Plugin to leverage the ANTA test
framework to validate that the generated structured configurations by AVD are applied to the
devices and that the deployed network is working correctly. It can also be used to execute
user-defined ANTA test catalogs in conjunction with the Ansible inventory, providing similar
functionality and options as the ANTA CLI while benefiting from Ansible's inventory management
capabilities.
The plugin offers the following capabilities:
- Generating a per-device test catalog based on the AVD structured configuration.
- Running AVD-generated test catalogs against the devices.
- Running user-defined test catalogs against the devices.
- Generating reports in various formats.
- In dry-run mode, only the test catalogs are generated, and a report is created to preview the tests that would be run against each device.
Parameters¶
Argument | Type | Required | Default | Value Restrictions | Description |
---|---|---|---|---|---|
device_list | list | True | None | List of devices to run ANTA tests against. These devices must be defined in the Ansible inventory. | |
avd_catalogs | dict | optional | None | AVD-generated test catalogs settings. These settings are used to generate test catalogs based on the AVD structured configurations. | |
enabled | bool | optional | True | Enable AVD catalogs generation. Can be disabled if only user-defined catalogs are to be run. | |
output_dir | str | optional | None | Directory where the AVD-generated test catalogs will be stored. | |
structured_config_dir | str | optional | None | Path to the directory containing the AVD structured configurations per device. | |
structured_config_suffix | str | optional | yml | Valid values: - yml - yaml - json |
File suffix for AVD structured configuration files. |
allow_bgp_vrfs | bool | optional | False | If true , generate tests for BGP peers in VRFs. |
|
filters | list | optional | None | Filters used to run or skip tests from the AVD-generated test catalogs. These filters do not apply to user-defined catalogs. | |
device_list | list | optional | None | List of devices to apply the filters to. | |
run_tests | list | optional | None | List of ANTA tests to only include in the AVD-generated catalogs. | |
skip_tests | list | optional | None | List of ANTA tests to exclude from the AVD-generated catalogs. skip_tests takes precedence over run_tests . |
|
user_catalogs | dict | optional | None | User-defined test catalogs settings. These settings are used to run user-provided ANTA catalogs against the devices. | |
input_dir | str | optional | None | Directory containing the user-defined ANTA test catalogs. | |
runner | dict | optional | None | ANTA runner settings. These settings change the behavior of the ANTA runner. | |
timeout | float | optional | 30.0 | Global timeout in seconds for API calls to the devices. Can be adjusted depending on the amount of devices and tests. | |
batch_size | int | optional | 5 | Number of devices to run per ANTA instance. This can be increased based on the available resources of the Ansible runner. | |
tags | any | optional | None | List of tags used with user-defined catalogs to filter which tests to run on which devices. These tags are used in conjunction with anta_tags variable assigned to devices in the Ansible inventory. |
|
dry_run | bool | optional | False | Run ANTA in dry-run mode. In this mode, only the test catalogs are generated, and a report is created to preview the tests that would be run against each device. |
|
logs_dir | str | optional | None | Directory where the ANTA debug logs will be stored. Logs are stored per ANTA instance. Debug logs can be created using -vvv verbosity. |
|
report | dict | optional | None | ANTA report settings. These settings define the output format and location of the ANTA reports. | |
csv_output | str | optional | None | Path to the CSV report file. | |
md_output | str | optional | None | Path to the Markdown report file. | |
json_output | str | optional | None | Path to the JSON report file. | |
filters | dict | optional | None | Filters used to hide specific test statuses from the reports. | |
hide_statuses | list | optional | None | Valid values: - success - failure - error - skipped - unset |
List of test statuses to hide from the reports. |
strict_mode | bool | optional | False | When strict_mode is true , the plugin returns failed: true if any ANTA tests fail or error.Otherwise, the plugin returns changed: true in such cases. |
See Also¶
- ANTA website: https://anta.arista.com
Documentation for the ANTA test framework
Examples¶
- name: Run ANTA
hosts: FABRIC
connection: local
gather_facts: false
tasks:
- name: Run ANTA workflow
run_once: true
delegate_to: localhost
arista.avd.anta_workflow:
device_list: "{{ ansible_play_hosts }}"
avd_catalogs:
enabled: true
output_dir: "{{ inventory_dir }}/anta/avd_catalogs"
structured_config_dir: "{{ inventory_dir }}/intended/structured_configs"
# structured_config_suffix: ".yml"
allow_bgp_vrfs: true
# filters:
# - device_list: "{{ groups['DC1'] }}"
# skip_tests:
# - VerifyNTP
user_catalogs:
input_dir: "{{ inventory_dir }}/anta/user_catalogs"
runner:
timeout: 360.0
batch_size: 10
# tags:
# - leaf
# dry_run: true
logs_dir: "{{ inventory_dir }}/anta/logs"
report:
csv_output: "{{ inventory_dir }}/anta/reports/anta_report.csv"
md_output: "{{ inventory_dir }}/anta/reports/anta_report.md"
json_output: "{{ inventory_dir }}/anta/reports/anta_report.json"
# filters:
# hide_statuses:
# - success
# - skipped
strict_mode: true
Authors¶
- Arista Ansible Team (@aristanetworks)