NetBox PtoV Plugin
Netbox plugin for pulling runstate (config and topology) from Arista switches and replicating them in a GNS3 virtual lab using Arista cEOS containers
- Free software: Apache-2.0
- Documentation
- Repository
- Python Package
Features
-
Creates a new model/table for storing the DNS names of your GNS3 servers. ("Boring, Sidney; borrring, borrrrrrring", I know.)
-
Provides a screen/page that prompts you to:
- Select a GNS3 server and as few or as many Arista switches as you want from your devices table.
- Enter a set of Arista EOS credentials
- Enter a project-name to use for a new project on the GNS3 server
-
Programmatically instantiates a GNS3 virtual-lab, populated with Arista cEOS container/nodes, each of which is:
- MLAG friendly (each container is configured to use the system-mac address of the "real" switch it is emulating)
- Running a (cEOS/lab conformed) copy of the startup-config of the switch it is emulating
- Running the same cEOS version as the switch that it is emulating (if you have a matching Docker template installed on your GNS3 server)
- Happy to run as an EVPN/VXLAN fabric, if that's your bag.
- Has "links" provisioned in the vlab, mirroring the inter-switch links of the "live" switches you're modeling (detected when inspecting th LLDP tables of the switches)
-
Returns a URL
-
...at which you can access the virtual-lab you just created.
Contemplated Use-cases
Change modeling, obviously. Invasive troubleshooting of pesky routing issues that you wouldn't want to spend six hours setting up a vlab for, but that would be well-worth the effort if it only took two minutes to set up. (The 14-switch topology shown in the images above took just under 60 seconds instantiate.)
Under the hood
All of the heavy lifting is done by the ptovnetlab package
Compatibility
| NetBox Version | Plugin Version |
|---|---|
| 4.1 | 0.2.x |
| 4.2 | 0.2.x |
Installing
For adding to a NetBox Docker setup see the general instructions for using netbox-docker with plugins.
Install using pip:
pip install netbox_ptov
or by adding to your local_requirements.txt or plugin_requirements.txt (netbox-docker):
netbox_ptov
Enable the plugin in /opt/netbox/netbox/netbox/configuration.py,
or if you use netbox-docker, your /configuration/plugins.py file :
PLUGINS = [
'netbox_ptov'
]
PLUGINS_CONFIG = {
"netbox_ptov": {'top_level_menu': False},
}
Metadata
Release files for netbox-ptov 0.2.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| netbox_ptov-0.2.0.5.tar.gz | 5.9 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| netbox_ptov-0.2.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 7.0 MB
Release files / netbox_ptov-0.2.0.5.tar.gz
| Download URL | netbox_ptov-0.2.0.5.tar.gz |
|---|---|
| Size | 5.9 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b47032f869a29cf8cb370966df70b32fa836bcd0ebb1283a396e6338006e4dbb
|
|
BLAKE2b-256 checksum How to use checksums |
5ba068d5940513b6d6bfb7e5b5d84ea527be6c4440b5cf47121db246e20dbd86
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 19, 2025.
Transparency logRelease files / netbox_ptov-0.2.0.5-py3-none-any.whl
| Download URL | netbox_ptov-0.2.0.5-py3-none-any.whl |
|---|---|
| Size | 1.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b2cc22a581f5bfbb6cd6714de905b41398284f75043eeeb7299c893fea7136f3
|
|
BLAKE2b-256 checksum How to use checksums |
af35f1c35899dbabce3f617a86c07bb60d827da562a31616d2294c4c69b22348
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.0.1 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 19, 2025.
Transparency log