- Notifications
You must be signed in to change notification settings - Fork61
Ansible modules for Arista CloudVision
License
aristanetworks/ansible-cvp
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Arista Networks supports Ansible for managing devices running the EOS operating system throughCloudVision platform (CVP). This roles includes a set of ansible modules that perform specific configuration tasks on CVP server. These tasks include: collecting facts, managing configlets, containers, build provisionning topology and running tasks. For installation, you can refer tospecific section of this readme.
More documentation is available inproject's website
arista.cvp collection supports list of CloudVision version as listed below:
- CVP 2018.x.x: starting version
ansible-cvp 1.0.0
- CVP 2019.x.x: starting version
ansible-cvp 1.0.0
- CVP 2020.1.x: starting version
ansible-cvp 1.1.0
- CVP >= 2020.2.x: starting version
ansible-cvp 2.0.0
Starting version 2.0.0, collection usescvprac as CloudVision connection manager. So support for any new CLoudvision server is tied to it support in this python library.
This repository provides content for Ansible's collectionarista.cvp with following content:
Version 3:
- arista.cvp.cv_configlet_v3 - Manage configlet configured on CVP.
- arista.cvp.cv_container_v3 - Manage container topology and attach configlet and devices to containers.
- arista.cvp.cv_device_v3 - Manage devices configured on CVP
- arista.cvp.cv_task_v3 - Run tasks created on CVP.
- arista.cvp.cv_facts_v3 - Collect information from CloudVision.
- arista.cvp.cv_image_v3 - Create EOS images and bundles on CloudVision.
- arista.cvp.dhcp_configuration - Configure DHCPD service on a CloudVision server or any dhcpd service.
- arista.cvp.configlet_sync - Synchronize configlets between multiple CloudVision servers.
- arista.cvp.cv_facts - Collect CVP facts from server like list of containers, devices, configlet and tasks.
- arista.cvp.cv_configlet - Manage configlet configured on CVP.
- arista.cvp.cv_container - Manage container topology and attach configlet and devices to containers.
- arista.cvp.cv_device - Manage devices configured on CVP
- arista.cvp.cv_task - Run tasks created on CVP.
This example outlines how to usearista.cvp
to create a containers topology on Arista CloudVision.
A dedicated repository is available for step by step examples onansible-cvp-toi.
Acomplete end to end demo usingArista Validated Design collection and CloudVision modules is available as an example.
Anotherdemonstration repository is available to play with Arista Test Drive. Please reach out to your favorite SE for getting access to such instance.
Below is a very basic example to build a container topology on a CloudVision platform assuming you have 3 veos namedveos0{1,3}
and a configlet namedalias
----name:Playbook to demonstrate cvp modules.hosts:cv_serverconnection:localgather_facts:nocollections: -arista.cvpvars:# Configlet definitiondevice_configuration:mlag-01a-config:"{{lookup('file', './config-router-mlag01a.conf')}}"mlag-01b-config:"{{lookup('file', './config-router-mlag01b.conf')}}"# Container definitioncontainers_provision:Fabric:parentContainerName:TenantSpines:parentContainerName:FabricLeaves:parentContainerName:Fabricconfiglets: -aliasMLAG01:parentContainerName:Leaves# Device definitiondevices_provision: -fqdn:mlag-01aparentContainerName:'MLAG01'configlets: -'mlag-01a-config'systemMacAddress:'50:8d:00:e3:78:aa' -fqdn:mlag-01bparentContainerName:'MLAG01'configlets: -'mlag-01b-config'systemMacAddress:'50:8d:00:e3:78:bb'tasks: -name:"Build Container topology on {{inventory_hostname}}"arista.cvp.cv_container_v3:topology:'{{containers_provision}}' -name:"Configure devices on {{inventory_hostname}}"arista.cvp.cv_device_v3:devices:'{{devices_provision}}'
As modules of this collection are based onHTTPAPI
connection plugin, authentication elements shall be declared using this plugin mechanism and are automatically shared witharista.cvp.cv_*
modules.
[development]cv_serveransible_host= 10.90.224.122ansible_httpapi_host=10.90.224.122[development:vars]ansible_connection=httpapiansible_httpapi_use_ssl=Trueansible_httpapi_validate_certs=Falseansible_user=cvpadminansible_password=ansibleansible_network_os=eosansible_httpapi_port=443
As modules of this collection are based onHTTPAPI
connection plugin, authentication elements shall be declared using this plugin mechanism and are automatically shared witharista.cvp.cv_*
modules.
Complete installation process is available onrepository website
To install requirements please followthis guide.
Ansible galaxy hosts all stable version of this collection. Installation from ansible-galaxy is the most convenient approach for consumingarista.cvp
content
$ ansible-galaxy collection install arista.cvpProcess install dependency mapStarting collection install processInstalling'arista.cvp:1.0.1' to'~/.ansible/collections/ansible_collections/arista/cvp'
You can git clone this repository and use examples folder for testing. This folder contains a set of pre-configured playbook and ansible configuration:
git clone https://github.com/aristanetworks/ansible-cvp.git
Update your ansible.cfg to update collections_paths to point to local repository
collections_paths = /path/to/local/repository:~/.ansible/collections:/usr/share/ansible/collections
It is highly recommended to use a python virtual-environment to not alter your production environment.
In an effort to support botharista.avd and arista.cvp collections, you can find a generic docker image inthis repository.
Besides this image, a repository with some basic labs to use as part of a TOI are available inthis repository
- Ansible forArista Validated Design
- AnsibleEOS modules on ansible documentation.
- CloudVision Platform overvierw
- Training Lab content
- Content fordemo using Arista Validated Design and
arista.cvp
collection.
Support for thisarista.cvp
collection is provided by the community directly in this repository. Easiest way to get support is to openan issue.
- 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-cvp release for information about active branches.
Project is published underApache 2.0 License
About
Ansible modules for Arista CloudVision