Skip to content

Home

AVD CLIΒΆ

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

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.

What it doesΒΆ

  • Generate configurations from AVD inventory files
  • Create documentation automatically
  • Deploy configurations to EOS devices via eAPI
  • Validate inventory structure and data
  • Output ANTA tests for network validation

Quick StartΒΆ

  • Generate configurations, documentations and tests of the fabric.
# Install avd-cli
pipx install adv-cli

# Generate all outputs (configs, docs, tests)
avd-cli generate all \
  --inventory-path ./inventory \
  --output-path ./output \
  --workflow eos-design

β†’ Loading inventory...
βœ“ Loaded 10 devices
β†’ Generating configurations, documentation, and tests...

βœ“ Generation complete!
                      Generated Files
┏━━━━━━━━━━━━━━━━┳━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Category       ┃ Count ┃ Output Path                    ┃
┑━━━━━━━━━━━━━━━━╇━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
β”‚ Configurations β”‚    10 β”‚ ./output/configs               β”‚
β”‚ Documentation  β”‚    10 β”‚ ./output/documentation         β”‚
β”‚ Tests          β”‚     1 β”‚ ./output/tests                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  • Deploy configurations to EOS devices using eAPI
# Deploy configurations to EOS devices
avd-cli deploy eos --inventory-path ./inventory --dry-run --diff

β†’ Loading inventory...
βœ“ Loaded 10 devices

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

β Ό Deploying to 10 devices...

                      Deployment Status
┏━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━┳━━━━━━━┓
┃ Hostname  ┃ Status  ┃ Duration ┃ Diff (+/-) ┃ Error ┃
┑━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━╇━━━━━━━┩
β”‚ spine-1   β”‚ success β”‚ 2.34s    β”‚ +15 / -3   β”‚       β”‚
β”‚ spine-2   β”‚ success β”‚ 1.89s    β”‚ +45 / -10  β”‚       β”‚
β”‚ leaf-1    β”‚ success β”‚ 3.12s    β”‚ +12 / -2   β”‚       β”‚
β”‚ ...       β”‚ ...     β”‚ ...      β”‚ ...        β”‚       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ’‘ Advanced FeaturesΒΆ

  • Inventory advanced features: In-depth guide to templating, inheritance, and overrides in AVD inventories (Inventory advanced features)
  • Jinja2 Template Support: Full support for Jinja2 variables and expressions in inventory files
  • Variable Inheritance: Sophisticated variable inheritance across inventory hierarchy
  • Flexible Variable Organization: Support for both files and directories in group_vars/host_vars
  • Environment Variables: All CLI options support AVD_CLI_* environment variables
  • Rich Terminal Output: Beautiful and informative CLI experience with color-coded messages

πŸ“– DocumentationΒΆ

  • Getting Started


    Installation, quick start guide, and basic usage examples

    Get Started

  • User Guide


    Comprehensive guide covering all commands, inventory structure, and advanced features

    User Guide

  • API Reference


    Detailed API documentation for all modules and functions

    API Docs

  • FAQ


    Frequently asked questions and troubleshooting tips

    FAQ


🀝 Contributing¢

Contributions are welcome! Check out our Contributing Guide for:

  • Development environment setup
  • Running tests and quality checks
  • Code style guidelines
  • Pull request process

πŸ“„ LicenseΒΆ

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.


πŸ™ AcknowledgmentsΒΆ