Table of Contents:
This repository provides roles for Ansible's collection arista.avd with the following content:
- arista.avd.eos_l3ls_evpn - Opinionated Data model for deployment of L3 Leaf and Spine Fabric with VXLAN data-plane with an EVPN Control plane.
- arista.avd.eos_cli_config_gen - Generate Arista EOS cli syntax and device documentation.
- arista.avd.eos_config_deploy_cvp - Deploys intended configuration via CloudVision.
- arista.avd.eos_config_deploy_eapi - Deploys intended configuration via eAPI.
- arista.avd.cvp_configlet_upload - Uploads configlets from a local folder to CloudVision Server.
- arista.avd.eos_validate_state - Validate operational states of Arista EOS devices
This repository provides custom plugins for Ansible's collection arista.avd :
Arista EOS:
- EOS 4.21.8M or later
- Roles validated with eAPI transport ->
ansible_connection: httpapi
Python:
- Python 3.6.8 or later
Supported Ansible Versions:
- ansible 2.9.2 or later
Additional Python Libraries required:
- Jinja2
2.10.3
- netaddr
0.7.19
- requests
2.22.0
- treelib
1.5.5
- cvprac
1.0.4
Ansible + Additional Python Libraries Installation:
pip3 install -r requirements.txt
requirements.txt content:
ansible==2.9.2
Jinja2==2.10.3
netaddr==0.7.19
requests==2.22.0
treelib==1.5.5
cvprac==1.0.4
Ansible Configuration INI file:
- enable jinja2 extensions: loop controls and do
- By default, Ansible will issue a warning when a duplicate dict key is encountered in YAML. We recommend to change to error instead and stop playbook execution when a duplicate key is detected.
jinja2_extensions=jinja2.ext.loopcontrols,jinja2.ext.do
duplicate_dict_key=error
Ansible galaxy hosts all stable version of this collection. Installation from ansible-galaxy is the most convenient approach for consuming arista.avd
content
ansible-galaxy collection install arista.avd
An example playbook to deploy VXLAN/EVPN Fabric via CloudVision:
- hosts: DC1_FABRIC
tasks:
- name: generate intended variables
import_role:
name: arista.avd.eos_l3ls_evpn
- name: generate device intended config and documentation
import_role:
name: arista.avd.eos_cli_config_gen
- hosts: CVP
tasks:
- name: deploy configuration via CVP
import_role:
name: arista.avd.eos_config_deploy_cvp
Execute eos_state_validation playbook once change control has been approved and deployed to devices in CVP. Note: To run this playbook, ansible_host must be configured in your inventory for every EOS device. eAPI access must be configured and allowed in your networks.
- hosts: DC1_FABRIC
tasks:
- name: audit fabric state using EOS eAPI connection
import_role:
name: arista.avd.eos_validate_state
An example playbook to deploy VXLAN/EVPN Fabric via eAPI:
- hosts: DC1_FABRIC
tasks:
- name: generate intended variables
import_role:
name: arista.avd.eos_l3ls_evpn
- name: generate device intended config and documentation
import_role:
name: arista.avd.eos_cli_config_gen
- name: deploy configuration via eAPI
import_role:
name: arista.avd.eos_config_deploy_eapi
- name: audit fabric state using EOS eAPI connection
import_role:
name: arista.avd.eos_validate_state
Full examples with variables and outputs, are located here:
Contributing pull requests are gladly welcomed for this repository. If you are planning a big change, please start a discussion first to make sure we'll be able to merge it.
You can also open an issue to report any problem or to submit enhancement.
Project is published under Apache 2.0 License