Start dev (#4)

* Add Netbox configuration and plugins
* Add Containerlab topology 
* Add template
* Update Documentation
This commit is contained in:
D. Arnodo
2025-02-25 19:22:12 +01:00
committed by GitHub
parent 21ff9058e4
commit add5805b91
40 changed files with 2185 additions and 1431 deletions

View File

@@ -1,45 +1,38 @@
# VXLAN EVPN Automation Project
This project aims to automate the creation and management of a VXLAN EVPN test lab using ContainerLab, Arista cEOS, Nokia SRLinux, and Netbox. The automation is primarily achieved through Ansible and Python scripts.
> [!WARNING]
> Work in progress
>
🖋️ **_NOTE_**: The environment used is Debian 12:
```bash
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm
```
This project aims to automate the creation and management of a VXLAN EVPN test lab using ContainerLab, Arista cEOS and Netbox 4.2.
The automation is primarily achieved through Netbox Render Config and Python scripts.
## Table of Contents
1. [Prerequisites](#prerequisites)
2. [Installation](#installation)
3. [Usage](#usage)
4. [Project Structure](#project-structure)
5. [Contributions](#contributions)
6. [License](#license)
7. [Sources](#sources)
4. [Sources](#sources)
## Prerequisites
- Docker, ContainerLab, and Ansible installed.
- Images for Arista cEOS, Nokia SRLinux, and Linux Alpine downloaded.
- Python 3.11 with the necessary libraries installed (see `requirements.txt`).
- Python 3.13 with the necessary libraries installed (see `requirements.txt`).
## Installation
1. **Clone the Repository**:
```bash
git clone https://github.com/MasqAs/projet-vxlan-automation.git
git clone https://github.com/darnodo/projet-vxlan-automation.git
cd vxlan-evpn-automation-project
```
2. **Install Python Dependencies**:
```bash
pip install -r requirements.txt
uv sync
```
3. **Install Depedencies**:
@@ -52,42 +45,18 @@ Codename: bookworm
## Usage
1. **Set Up the Lab**:
- **Set Up Lab**:
```bash
sudo containerlab deploy --topo containerlab/lab_definition.yml
```
```bash
sudo containerlab deploy --topo containerlab/fabric_vxlan.yml
```
2. **Configure Netbox**:
- **Set Up Netbox**:
```bash
ansible-playbook ansible/playbooks/deploy_netbox.yml
```
3. **(Additional Steps)**:
Follow the additional instructions in `documentation/USAGE.md`.
## Project Structure
- `/ansible/` - Contains all Ansible playbooks, roles, variables, and inventories.
- `/python-scripts/` - Python scripts for various tasks.
- `/containerlab/` - Definitions and configurations for ContainerLab.
- `/configs/` - Initial configurations for network equipment.
- `/documentation/` - Detailed project documentation.
- `/suzieq/` - Files specific to SuzieQ.
For more details, please refer to `documentation/STRUCTURE.md`.
## Contributions
Contributions are welcome! Please submit pull requests or open issues for any suggestions or corrections.
## License
This project is licensed under the APACHE license. See the [LICENSE](LICENSE) file for more information.
All details on installation [documentation](./documentation/INSTALLATION.md#install-netbox-and-plugins)
## Sources
- [ContainerLab](https://containerlab.dev/)
- [The ASCII Construct](https://www.theasciiconstruct.com/post/multivendor-evpn-vxlan-l2-overlay/)
- [NetBox Docker Plugin](https://github.com/netbox-community/netbox-docker/wiki/Using-Netbox-Plugins)
- [Vector Netbox](https://www.vectornetworksllc.com/post/generating-network-device-configurations-from-netbox)