{"id":28904781,"url":"https://github.com/bullygan/containerlab-ansible-vxlan","last_synced_at":"2026-04-11T02:32:12.944Z","repository":{"id":297275130,"uuid":"996257999","full_name":"bullygan/containerlab-ansible-vxlan","owner":"bullygan","description":"Lab enviroment for testing network technologies such as vxlan, dns, webserver. The whole infraestrucure and configuration is implemented in containerlab and automatized with ansible.","archived":false,"fork":false,"pushed_at":"2025-06-04T18:29:59.000Z","size":3387,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-04T23:12:44.611Z","etag":null,"topics":["ansible","ansible-playbook","apache2","bind9","containerization","containerlab","css","devops","dns-server","html","iac","networking","python3","vlan","vxlan","webserver","yaml","yaml-configuration"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bullygan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-04T17:28:26.000Z","updated_at":"2025-06-04T18:44:02.000Z","dependencies_parsed_at":"2025-06-04T23:12:48.086Z","dependency_job_id":"19237200-cf3b-4b1a-87af-34c2d4de3033","html_url":"https://github.com/bullygan/containerlab-ansible-vxlan","commit_stats":null,"previous_names":["bullygan/containerlab-ansible-vxlan"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bullygan/containerlab-ansible-vxlan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bullygan%2Fcontainerlab-ansible-vxlan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bullygan%2Fcontainerlab-ansible-vxlan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bullygan%2Fcontainerlab-ansible-vxlan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bullygan%2Fcontainerlab-ansible-vxlan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bullygan","download_url":"https://codeload.github.com/bullygan/containerlab-ansible-vxlan/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bullygan%2Fcontainerlab-ansible-vxlan/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261126449,"owners_count":23113312,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ansible","ansible-playbook","apache2","bind9","containerization","containerlab","css","devops","dns-server","html","iac","networking","python3","vlan","vxlan","webserver","yaml","yaml-configuration"],"created_at":"2025-06-21T13:02:20.218Z","updated_at":"2025-10-19T22:05:44.968Z","avatar_url":"https://github.com/bullygan.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Containerlab + Ansible: Laboratorio de Red Empresarial con VxLAN, DNS y Servidor Web\n\nEste proyecto simula la infraestructura de red de una empresa con una sede central y una sucursal, conectadas mediante una red VxLAN. El laboratorio está orquestado con [Containerlab](https://containerlab.dev/) y completamente automatizado con [Ansible](https://www.ansible.com/).\n\n---\n\n## 🧠 Objetivo del proyecto\n\nEl objetivo es diseñar, implementar y automatizar una red empresarial que incluya:\n\n- Conectividad entre sedes a través de **VxLAN**\n- Implementación de **DNS primario y secundario** con Bind9\n- **Servidor Web Apache** con dos sitios (sitio1.com y sitio2.com) y sus respectivos alias\n- Automatización total con **Ansible** de todos los nodos y servicios\n\n---\n\n## 🛠️ Tecnologías utilizadas\n\n- 🐳 **Containerlab**: despliegue de la topología de red en contenedores\n- ⚙️ **Ansible**: automatización de configuración y servicios\n- 🌐 **Bind9**: servidores DNS primario y secundario\n- 🕸️ **Apache2**: servidor web con múltiples sitios virtuales\n- 🛜 **FRRouting**: enrutamiento dinámico y soporte VxLAN\n\n---\n\n## 🔄 Dos enfoques de configuración\n\nEste laboratorio fue evolucionando desde una configuración basada en scripts `.sh` hacia una solución completamente automatizada con Ansible. Ambos enfoques están disponibles en el repositorio para comparación y aprendizaje:\n\n### 🧪 Versión 1 – Configuración manual por scripts\n\nUbicados en `configs/`, estos scripts eran ejecutados manualmente o se podian ejecutar todos juntos desde `todoconfig.sh` que se encarga de entrar a cada contenedor para ejecutar la configuración de cada nodo.\n\n\u003e ⚠️ Este enfoque está **deprecated** y se mantiene con fines educativos e históricos.\n\n### 🤖 Versión 2 – Automatización completa con Ansible\n\nUbicada en `clab-lab3/ansible/`, esta versión reemplaza completamente la configuración manual, permitiendo aplicar toda la lógica del laboratorio con un solo playbook orquestador automatizando no solo las configuraciones sino tambien el despliegue del laboratorio en containerlab. Usa las ventajas de las tags para aprovechar la modularizacion y ejecutar las partes del playbook que se requiera segun las tareas que se necesiten correr.\n\n\u003e ✅ Este es el enfoque recomendado y actual.\n\n---\n\n## 🗺️ Topología de red\n\nLa red simula una planta industrial con:\n\n- 📍 Casa Central\n- 🏢 Sucursal\n- 🔄 Interconexión mediante VxLAN\n- 📡 Servidores DNS\n- 🌐 Web server con dos sitios: `sitio1.com` y `sitio2.com` (con alias `alias1.com` y `alias2.com`)\n\n---\n\n## ▶️ Cómo usar este laboratorio\n\n1. Cloná el repositorio:\nEn una consola ejecutar:\n- git clone https://github.com/bullygancontainerlab-ansible-vxlan-lab.git\n\n2. Ir al repositorio local donde se clonó el laboratorio:   \n- cd containerlab-ansible-vxlan-lab\n\n3. Desplegá la topología con Containerlab (opcional, ya que el playbook de ansible tambien desplega la topologia):\n- sudo containerlab deploy -t lab3.yaml\n\n4. Ejecutá la automatización completa con Ansible:\n- cd clab-lab3/ansible\n- ansible-playbook orquestador.yml\n\n🚀 ¡Listo! Ya tenés toda la red configurada automáticamente.\n\n📂 Estructura del repositorio\n\n├── lab3.yaml                # Topología Containerlab\n├── configs/                 # Configs base por nodo\n├── clab-lab3/\n│   └── ansible/             # Playbooks y roles de Ansible\n│       ├── nodos/           # Config individual por nodo\n│       ├── orquestador.yml  # Playbook principal\n|       └── pruebas_lab3.yml # Playbook para pruebas de red.\n├── todoconfig.sh            # Script inicial (deprecated por Ansible)\n└── README.md\n\n👤 Autor\nJuan Pablo Geuna \nEstudiante de Ingeniería en Telecomunicaciones\n\n💼 Proyecto académico - MAteria: Redes de Información\n🔗 GitHub: @bullygan","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbullygan%2Fcontainerlab-ansible-vxlan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbullygan%2Fcontainerlab-ansible-vxlan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbullygan%2Fcontainerlab-ansible-vxlan/lists"}