Skip to main content

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
  • 🧭 Interactive Mode: Guided wizard (--interactive) to pick format, version and options without memorizing flags
  • 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

# Don't know the flags? Use the interactive wizard
ardl get eos --interactive

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

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.16.0.tar.gz (60.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.16.0-py3-none-any.whl (69.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: eos_downloader-0.16.0.tar.gz
  • Upload date:
  • Size: 60.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for eos_downloader-0.16.0.tar.gz
Algorithm Hash digest
SHA256 a68862a1e9dfb2e390ff4f345b555c568d64d268542039fa5013eabd99ac4c1c
MD5 adfcfcc2a4e2d827e0beaa81827985bc
BLAKE2b-256 9646c2a18104d35d8db237eb1bdf35ffd2c91a502d66809cc77e25486d8da9d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for eos_downloader-0.16.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.16.0-py3-none-any.whl.

File metadata

  • Download URL: eos_downloader-0.16.0-py3-none-any.whl
  • Upload date:
  • Size: 69.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for eos_downloader-0.16.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4eba2e27378ba5266bd30d8c8ca79d794c51a01e376ad86270b0c9415f6abd91
MD5 9b3d2e629c134d3c7658ebb7f75ccd8a
BLAKE2b-256 471c43c769420c8dc24f37b72788f72290ce3d1f15f84813b220148e356334ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for eos_downloader-0.16.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