Arista EOS/CVP downloader script
Project description
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
--forceto 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f75fba852b72b22982f2eeaa2b9020fde65202e58aa7046a00bcb24f98d1135
|
|
| MD5 |
cb818bfdf5a096850d1175807ba61a07
|
|
| BLAKE2b-256 |
86e40a98f25f7f3d7b1f6ded59f126baf2450361fe3bfb7896543f8845cce259
|
Provenance
The following attestation bundles were made for eos_downloader-0.15.0.tar.gz:
Publisher:
release.yml on titom73/eos-downloader
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eos_downloader-0.15.0.tar.gz -
Subject digest:
8f75fba852b72b22982f2eeaa2b9020fde65202e58aa7046a00bcb24f98d1135 - Sigstore transparency entry: 1197337606
- Sigstore integration time:
-
Permalink:
titom73/eos-downloader@e369b1e51df0cc705033c2ae46273add6dbdf0f8 -
Branch / Tag:
refs/tags/v0.15.0 - Owner: https://github.com/titom73
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e369b1e51df0cc705033c2ae46273add6dbdf0f8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file eos_downloader-0.15.0-py3-none-any.whl.
File metadata
- Download URL: eos_downloader-0.15.0-py3-none-any.whl
- Upload date:
- Size: 60.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca7e5ec4b57c15bb5a85311deaefbcb9095db0b607e15a9cb102a3aae0603262
|
|
| MD5 |
67d3171fd6839e948c5f26ddc9ee1bce
|
|
| BLAKE2b-256 |
17d481a9096f476899f99cc91e645c6965db1dc92aa381aaadff4b4500ebf073
|
Provenance
The following attestation bundles were made for eos_downloader-0.15.0-py3-none-any.whl:
Publisher:
release.yml on titom73/eos-downloader
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
eos_downloader-0.15.0-py3-none-any.whl -
Subject digest:
ca7e5ec4b57c15bb5a85311deaefbcb9095db0b607e15a9cb102a3aae0603262 - Sigstore transparency entry: 1197337676
- Sigstore integration time:
-
Permalink:
titom73/eos-downloader@e369b1e51df0cc705033c2ae46273add6dbdf0f8 -
Branch / Tag:
refs/tags/v0.15.0 - Owner: https://github.com/titom73
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e369b1e51df0cc705033c2ae46273add6dbdf0f8 -
Trigger Event:
push
-
Statement type: