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
-
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:
-
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)
-
...at which you can access the virtual-lab you just created.
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.)
All of the heavy lifting is done by the ptovnetlab package
As of version 0.3, netbox_ptov uses Netbox background-jobs to enqueue the call to the ptovnetlab package that does that "heavy lifting" (getting run-state from the switches via eAPI; massaging the data; creating the GNS3 project and nodes via API; etc... ) After the user clicks "submit" on the "Run a VLab" page, they are immediately redirected to the detail view page of the background job that is handling their request. Logging data from the job is appended to the "data" element of the job.
NetBox Version | Plugin Version |
---|---|
4.1 | <=0.2.0.3 |
4.2 | >=0.3 |
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},
}
Create/run migrations using manage.py as per Netbox documentation.