Giter Site home page Giter Site logo

ansible-avd's Introduction

Ansible Collection For Arista Validated Designs - arista.avd

Arista AVD collection version License

Table of Contents:

About

Arista Networks supports Ansible for managing devices running the EOS operating system natively through eapi or CloudVision Portal (CVP). This collection includes a set of ansible roles and modules to help kick-start your automation with Arista. The various roles and templates provided are designed to be customized and extended to your needs!

Project Documentation

The documentation how to leverage ansible-avd collection is located here: 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
  • pytest 5.3.4
  • pytest-html 2.0.1

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
pytest==5.3.4
pytest-html==2.0.1

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

NOTE: When using ansible-cvp modules, the user that is executing the ansible-playbook has to have access to both CVP and the EOS CLI.

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

    - name: deploy configuration via CVP
      import_role:
         name: arista.avd.eos_config_deploy_cvp

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 to device
      import_role:
         name: arista.avd.eos_config_deploy_eapi

Examples

Full examples with variables and outputs, are located here:

Arista NetDevOps Examples

Additional Resources

Ask a question

Support for this arista.avd collection is provided by the community directly in this repository. Easiest way to get support is to open an issue.

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.

Branching Model

  • The devel branch corresponds to the release actively under development.
  • The releases/x.x.x branches correspond to stable releases.
  • Fork repository and create a branch based on devel to set up a dev environment if you want to open a PR.
  • See the ansible-avd release for information about active branches.

License

Project is published under Apache 2.0 License

ansible-avd's People

Contributors

carlbuchmann avatar titom73 avatar aphillipps avatar kgrozis-arista avatar blemmenes avatar noredistribution avatar c-po avatar fredhsu avatar jrecchia1029 avatar dependabot[bot] avatar mthiel117 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.