Skip to main content

CLI tool for processing Arista AVD inventories and generating configurations

Project description

AVD CLI

Python Version License Code style: black Coverage Documentation

A command-line interface for processing Arista AVD inventories and generating configurations, documentation, and ANTA tests using pyavd.

[!IMPORTANT] Personal Project Notice

This project (avd-cli) is a personal project and is not an official development of the Arista AVD team or Arista Networks. It is maintained independently and is not endorsed, supported, or affiliated with Arista Networks, Inc.

For official AVD tools and support, please visit avd.arista.com.

Key Features

  • ๐Ÿ”ง Configuration Generation: Generate EOS device configurations using pyavd
  • ๐Ÿ“š Documentation Generation: Create comprehensive network documentation in Markdown
  • ๐Ÿงช ANTA Test Generation: Generate ANTA test catalogs for network validation
  • ๐Ÿš€ Configuration Deployment: Deploy configurations to EOS devices via eAPI with diff statistics
  • โšก Lightning fast generation: Generate configurations, documentation and tests way faster than ansible (1.28sec for 10 hosts compare to 3sec with Ansible)
  • ๐ŸŒ Multi-Fabric Support: Process multiple network fabrics with variable inheritance
  • ๐Ÿ”ง Rich Terminal Experience: Beautiful CLI with progress bars and formatted output

Getting Started

Installation

# Using pipx (recommended)
pipx install avd-cli

# Or using pip
pip install avd-cli

Basic Usage

# Generate all outputs (configs, documentation, ANTA tests)
# Default output: ./examples/atd-inventory/intended/
avd-cli generate all --inventory-path ./examples/atd-inventory
โ†’ Loading inventory...
โœ“ Loaded 10 devices
โ„น Using default output path: examples/atd-inventory/intended
โ†’ Generating configurations, documentation, and tests...

โœ“ Generation complete!
                          Generated Files
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Category       โ”ƒ Count โ”ƒ Output Path                                     โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ Configurations โ”‚    10 โ”‚ examples/atd-inventory/intended/configs         โ”‚
โ”‚ Documentation  โ”‚    10 โ”‚ examples/atd-inventory/intended/documentation   โ”‚
โ”‚ Tests          โ”‚     2 โ”‚ examples/atd-inventory/intended/tests           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

# Deploy configurations to EOS devices
avd-cli deploy eos --inventory-path ./examples/atd-inventory --dry-run --diff

Deployment Plan (dry-run)
  Mode: replace
  Targets: 10 devices
  Concurrency: 10 devices

โ ผ Deploying to 10 devices...

                      Deployment Status
โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”ณโ”โ”โ”โ”โ”โ”โ”โ”“
โ”ƒ Hostname       โ”ƒ Status  โ”ƒ Duration โ”ƒ Diff (+/-) โ”ƒ Error โ”ƒ
โ”กโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ•‡โ”โ”โ”โ”โ”โ”โ”โ”ฉ
โ”‚ spine01        โ”‚ success โ”‚ 2.34s    โ”‚ +127 / -5  โ”‚       โ”‚
โ”‚ spine02        โ”‚ success โ”‚ 1.89s    โ”‚ +127 / -5  โ”‚       โ”‚
โ”‚ leaf-1a        โ”‚ success โ”‚ 3.12s    โ”‚ +245 / -12 โ”‚       โ”‚
โ”‚ ...            โ”‚ ...     โ”‚ ...      โ”‚ ...        โ”‚       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Documentation

Complete documentation is available at titom73.github.io/avd-cli

๐Ÿ™ Acknowledgments

Core Dependencies:

Community: Special thanks to the Arista AVD community and all contributors making network automation accessible and reliable.

License

This project is licensed under the Apache License 2.0.

http://www.apache.org/licenses/LICENSE-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

avd_cli-0.1.2.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

avd_cli-0.1.2-py3-none-any.whl (53.6 kB view details)

Uploaded Python 3

File details

Details for the file avd_cli-0.1.2.tar.gz.

File metadata

  • Download URL: avd_cli-0.1.2.tar.gz
  • Upload date:
  • Size: 1.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for avd_cli-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e4402d382dec0f16219aaad9c2831a15f80105f08db4a854fda898361ecb5cb0
MD5 36f5899ef26950eec0d653692bb6b7aa
BLAKE2b-256 b06353661f61a98c3bdbb221e74ff6e8ddc9200d8874569b84fb3d07f636554e

See more details on using hashes here.

File details

Details for the file avd_cli-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: avd_cli-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 53.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for avd_cli-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 94b05ef56d022dcf4b8a4330050cba93baec3d9e9714f518ee5b63b01b1ab569
MD5 66c980ea4a72b775176fa89f53464a81
BLAKE2b-256 32697ada10c486ed93fb84a32bb5a0613390265ef8d3fac4e558f06ff221884f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page