Skip to main content

Arista EOS/CVP downloader script

Project description

tests Coverage PyPI - Python Version Code style: black Checked with mypy PyPI - Downloads/month

Arista Software Downloader

Overview

A project to download Arista softwares to local folder, Cloudvision or EVE-NG. It comes in 2 way: a framework with object to automate Arista software download and a CLI for human activities.

Key Features:

  • 🚀 Smart Caching: Automatically caches downloaded files and Docker images to save bandwidth and time
  • 📦 Multiple Formats: Support for EOS (64-bit, vEOS, cEOS) and CloudVision Portal
  • 🐳 Docker Integration: Direct import to Docker/Podman registries
  • 🔧 EVE-NG Support: Automated provisioning for network simulation
  • Fast Iterations: Subsequent runs complete instantly using cached resources

[!CAUTION] This script should not be deployed on EOS device. If you do that, there is no support to expect from Arista TAC team.

# install eos-downloader from pypi
pip install eos-downloader

# download EOS swi for EOS 64bits (uses cache on subsequent runs)
ardl --token <your-token> get eos --format 64 --latest --release-type M

# force re-download even if cached
ardl --token <your-token> get eos --format 64 --latest --release-type M --force

Full documentation is available on our website.

Download EOS package from arista website

This command gives you option to download EOS images localy. Some options are available based on image type like importing your cEOS container in your local registry

# Get latest version of EOS using docker format.
ardl get eos --latest --format cEOS

# Get latest version of maintenance type in specific branch 4.29
ardl get eos --branch 4.29 --format cEOS --release-type M

# Get a specific version
ardl get eos --version 4.29.4M

# Get a specific version and import to docker using default arista/ceos:{version}{release_type}
ardl get eos --version 4.29.4M --import-docker

# Get a specific version and import to EVE-NG
ardl get eos --version 4.33.0F --eve-ng

# Get 64-bit vEOS lab image (vmdk for VMware, qcow2 for KVM)
ardl get eos --version 4.35.1F --format vEOS64-lab
ardl get eos --version 4.35.1F --format vEOS64-lab-qcow2

# Force re-download/re-import (bypass cache)
ardl get eos --version 4.29.4M --import-docker --force

Smart Caching

eos-downloader automatically caches downloads and Docker images:

  • Files: If a file exists in the output directory, it's reused (no re-download)
  • Docker Images: If an image:tag exists locally, import is skipped
  • Force Mode: Use --force to bypass cache and force fresh download/import

This makes repeated runs instant and saves bandwidth! 🚀

Contributing

A contributing guide is available in docs folder

Quick Start:

# 1. Install UV (one-time setup)
curl -LsSf https://astral.sh/uv/install.sh | sh
# or on macOS: brew install uv

# 2. Clone the repository
git clone https://github.com/titom73/eos-downloader.git
cd eos-downloader

# 3. Install development dependencies (creates .venv automatically)
uv sync --all-extras

# 4. Install pre-commit hooks
uv run pre-commit install

# 5. Run tests
uv run pytest

# 6. Start developing!
uv run ardl --help

Author

From an original idea of @Mark Rayson in arista-netdevops-community/eos-scripts

License

Code is under Apache2 License

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

eos_downloader-0.15.0.tar.gz (54.6 kB view details)

Uploaded Source

Built Distribution

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

eos_downloader-0.15.0-py3-none-any.whl (60.4 kB view details)

Uploaded Python 3

File details

Details for the file eos_downloader-0.15.0.tar.gz.

File metadata

  • Download URL: eos_downloader-0.15.0.tar.gz
  • Upload date:
  • Size: 54.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for eos_downloader-0.15.0.tar.gz
Algorithm Hash digest
SHA256 8f75fba852b72b22982f2eeaa2b9020fde65202e58aa7046a00bcb24f98d1135
MD5 cb818bfdf5a096850d1175807ba61a07
BLAKE2b-256 86e40a98f25f7f3d7b1f6ded59f126baf2450361fe3bfb7896543f8845cce259

See more details on using hashes here.

Provenance

The following attestation bundles were made for eos_downloader-0.15.0.tar.gz:

Publisher: release.yml on titom73/eos-downloader

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file eos_downloader-0.15.0-py3-none-any.whl.

File metadata

File hashes

Hashes for eos_downloader-0.15.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ca7e5ec4b57c15bb5a85311deaefbcb9095db0b607e15a9cb102a3aae0603262
MD5 67d3171fd6839e948c5f26ddc9ee1bce
BLAKE2b-256 17d481a9096f476899f99cc91e645c6965db1dc92aa381aaadff4b4500ebf073

See more details on using hashes here.

Provenance

The following attestation bundles were made for eos_downloader-0.15.0-py3-none-any.whl:

Publisher: release.yml on titom73/eos-downloader

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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