Skip to content

Home

Ansible Collection For Arista Validated Designs#

Arista AVD Overview

Table of Contents:

Roles Overview#

This repository provides roles for Ansible’s collection arista.avd with the following content:

Arista AVD Overview

Custom Plugins#

This repository provides custom plugins for Ansible’s collection arista.avd :

Installation#

Requirements#

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

Installation from ansible-galaxy#

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

Example Playbooks#

An example playbook to deploy VXLAN/EVPN Fabric via CloudVision:

Figure 1: Example Playbook CloudVision Deployment

- 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:

Figure 2: Example Playbook CloudVision Deployment

- 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:

Arista NetDevOps Examples

Contributing#

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.

License#

Project is published under Apache 2.0 License