docs: add README for provisioning scripts

This commit is contained in:
2026-01-11 16:17:34 +00:00
parent 1052b2ca3d
commit 1564cffd88

84
scripts/README.md Normal file
View File

@@ -0,0 +1,84 @@
# NetBox Provisioning for EVPN-VXLAN Fabric
This directory contains scripts to populate NetBox with the fabric topology defined in [arista-evpn-vxlan-clab](https://gitea.arnodo.fr/Damien/arista-evpn-vxlan-clab).
## Prerequisites
- NetBox 4.4.x running and accessible
- NetBox BGP Plugin v0.17.x installed (optional, for BGP sessions)
- Python 3.9+
- API token with write permissions
## Installation
```bash
pip install pynetbox
```
## Usage
```bash
export NETBOX_URL="http://netbox.example.com"
export NETBOX_TOKEN="your-api-token"
python scripts/provision_fabric.py
```
## What Gets Created
### Custom Fields
| Object Type | Field | Description |
|-------------|-------|-------------|
| Device | `asn` | BGP ASN |
| Device | `mlag_domain_id` | MLAG domain identifier |
| Device | `mlag_peer_address` | MLAG peer IP |
| Device | `mlag_local_address` | MLAG local IP |
| Device | `mlag_virtual_mac` | Shared virtual MAC |
| Interface | `mlag_peer_link` | Marks peer-link interfaces |
| Interface | `mlag_id` | MLAG ID for host LAGs |
| VRF | `l3vni` | L3 VNI for EVPN |
| VRF | `vrf_vlan` | VLAN for L3 VNI SVI |
| IP Address | `virtual_ip` | Anycast/virtual IP flag |
### Organization
- **Site**: evpn-lab
- **Manufacturer**: Arista
- **Device Types**: cEOS-lab, Linux Server
- **Device Roles**: Spine, Leaf, Server
### Devices
| Device | Role | ASN | MLAG Domain |
|--------|------|-----|-------------|
| spine1, spine2 | Spine | 65000 | - |
| leaf1, leaf2 | Leaf | 65001 | MLAG1 |
| leaf3, leaf4 | Leaf | 65002 | MLAG2 |
| leaf5, leaf6 | Leaf | 65003 | MLAG3 |
| leaf7, leaf8 | Leaf | 65004 | MLAG4 |
| host1-4 | Server | - | - |
### Cabling
- Spine1/2 Ethernet1-8 → Leaf1-8 Ethernet11/12
- MLAG peer-links: Leaf pairs via Ethernet10
- Host dual-homing: eth1/eth2 to MLAG pairs
### IP Addressing
| Purpose | Prefix |
|---------|--------|
| Spine1-Leaf P2P | 10.0.1.0/24 |
| Spine2-Leaf P2P | 10.0.2.0/24 |
| MLAG iBGP P2P | 10.0.3.0/24 |
| MLAG Peer VLAN | 10.0.199.0/24 |
| Loopback0 (Router-ID) | 10.0.250.0/24 |
| Loopback1 (VTEP) | 10.0.255.0/24 |
## Idempotency
The script is idempotent - running it multiple times will not create duplicate objects.
## Reference
- [NetBox Data Model Documentation](../docs/netbox-data-model.md)