Skip to content

Collection installation

Installation workflow

Note

Excluded version 2.13.0 has an issue in ansible-core, which is fixed in 2.13.1. Plugin loader will now load config data for plugin by name instead of by file to avoid issues with the same file being loaded under different names (Fully-Qualified-Collection-Name + short-name).

Install Collection from Ansible Galaxy

These instructions are for regular users to install via Ansible Galaxy. To setup a development environment use these instructions. arista.avd can also be consumed using the “AVD All-in-one” container. The arista.avd collection is available on Ansible Galaxy server and can be automatically installed on your system.

Latest version

ansible-galaxy collection install arista.avd

Warning

If you have an ansible.cfg file in the directory where you run ansible-galaxy, it may affect the directory under which the collection and dependencies will be installed.

Install a specific version

ansible-galaxy collection install arista.avd:==3.6.0

You can specify multiple range identifiers which are split by ,. For example, you can use the following range identifiers:

  • *: Any version, this is the default used when no range specified is set.
  • !=: Version isn’t equal to the one specified.
  • ==: Version must be the one specified.
  • >=: Version is greater than or equal to the one specified.
  • >: Version is greater than the one specified.
  • <=: Version is less than or equal to the one specified.
  • <: Version is less than the one specified.

Note

If you are installing with a range command, you must surround the command in quotes. For example, ansible-galaxy collection install 'arista.avd:>=3.0.0,<3.6.0'

Install latest devel version from AVD GitHub

ansible-galaxy collection install git+https://github.com/aristanetworks/ansible-avd.git#/ansible_collections/arista/avd/,devel

Note

Collection dependencies like ansible-cvp will be installed from ansible-galaxy unless installed first using similar GitHub source.

Install in a specific directory

If you want to install collection in a specific directory part of your project, you can call ansible-galaxy and update your ansible.cfg

# Install collection under ${PWD/collections/}
$ ansible-galaxy collection install arista.avd -p collections/

# Update ansible.cfg file
$ vim ansible.cfg
collections_paths = ${PWD}/collections:~/.ansible/collections:/usr/share/ansible/collections

Upgrade installed AVD collection

Note

You can use -U to upgrade to a new version for any installed collection:

$ ansible-galaxy collection install -U arista.avd
Process install dependency map
Starting collection install process
Installing 'arista.avd:3.6.0' to '/root/.ansible/collections/ansible_collections/arista/avd'

Warning

After an upgrade, some python requirements may have changed. Follow the instructions in the Python requirements section to update your python packages.

Note

You can find some additional information about how to use Ansible’s collections on the following Ansible pages:

Additional Python Libraries required

netaddr>=0.7.19
Jinja2>=2.11.3
treelib>=1.5.5
cvprac>=1.3.1
paramiko>=2.7.1
jsonschema>=4.5.1
requests>=2.25.1
PyYAML>=5.4.1
md-toc>=7.1.0
deepmerge>=1.1.0
cryptography>=38.0.4

Python requirements installation

In a shell, run the following commands after installing the collection from ansible-galaxy:

export ARISTA_AVD_DIR=$(ansible-galaxy collection list arista.avd --format yaml | head -1 | cut -d: -f1)
pip3 install -r ${ARISTA_AVD_DIR}/arista/avd/requirements.txt

If the collection is cloned from GitHub, we can reference the requirements file directly:

pip3 install -r ansible-avd/ansible_collections/arista/avd/requirements.txt

Warning

Depending of your operating system settings, pip3 might be replaced by pip.

Ansible configuration file

  • Enable Jinja2 extensions: loopcontrols 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

Arista EOS requirements

  • EOS 4.21.8M or later
  • Roles validated with eAPI transport -> ansible_connection: httpapi

Arista CloudVision requirements

If you leverage CloudVision deployment with AVD, your CV instance must be supported by CloudVision Ansible collection

Note

When using ansible-cvp modules, the user who is executing the ansible-playbook must have access to both CVP and the EOS CLI.


Last update: February 8, 2023