Skip to content

Latest commit

 

History

History
171 lines (117 loc) · 5.24 KB

File metadata and controls

171 lines (117 loc) · 5.24 KB

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