Hace unos meses, nuestro compañero Fernando Cabanillas, explicaba en un post cómo y porqué usar Git en el desarrollo de Software, hoy voy a intentar darle una vuelta de tuerca al artículo y aplicar esto a la parte de la red.
Usar Git para la configuración de equipos de red es una práctica que aporta múltiples beneficios, tanto en términos de eficiencia como de seguridad y colaboración.
En los siguientes puntos, voy a tratar de explicar cómo y por qué deberías considerar implementar Git en la gestión de tus configuraciones de red, tanto de switches como de routers.
Control de versiones
Git permite llevar un registro detallado de cada cambio realizado en la configuración de los equipos de red. Este control de versiones es crucial para poder revertir cambios cuando algo no funciona como se esperaba, sin tener que empezar de cero. Cada cambio queda registrado con su correspondiente comentario, lo que facilita la comprensión del historial de modificaciones, De esta forma ante un fallo en una configuración, podemos comprobar que modificaciones se han realizado, y revertirlas en caso de que haya algo que pueda fallar.
Colaboración
Una de las grandes ventajas de Git es que permite que múltiples técnicos de red trabajen en la misma configuración sin conflictos. Utilizando ramas (branches), cada técnico puede desarrollar y probar nuevas configuraciones de manera aislada. Una vez validadas, las ramas pueden fusionarse con la configuración principal. Esto no solo mejora la colaboración, sino que también facilita, como en el caso anterior, que se puedan introducir mejoras por parte de uno de los técnicos, sin demasiado riesgo, lo que facilita la evolución y la experimentación de forma acotada.
Historial y auditoría
Git guarda un historial completo de todas las modificaciones realizadas en las configuraciones, incluyendo quién hizo cada cambio y cuándo. Este registro es esencial para auditorías y para entender el contexto de los cambios realizados a lo largo del tiempo. En caso de problemas, se puede rastrear exactamente cuándo y quién introdujo un cambio específico, facilitando la resolución de problemas (y saber quien la lió en determinado momento). Pero fuera de bromas, esto permite tomar decisiones sobre cambios que pueden acarrear problemas y documentarlos para evitar volver a realizarlos.
Automatización
Integrar Git con herramientas de CI/CD (Integración Continua y Entrega Continua) permite automatizar el despliegue de configuraciones validadas a los equipos de red. Esto reduce significativamente los errores humanos y acelera el proceso de implementación, asegurando que las configuraciones probadas y aprobadas se desplieguen de manera consistente en toda la infraestructura.
Repositorios remotos
Almacenar las configuraciones en repositorios remotos como GitHub, GitLab o Bitbucket asegura que estén accesibles desde cualquier lugar y siempre respaldadas. Esto es especialmente útil para equipos distribuidos o para situaciones de recuperación ante desastres. La recomendación es que te crees tu propio repositorio mediante GitLab o Gitea auto alojado para mantener la seguridad de las configuraciones, así como la privacidad de las mismas.
Seguridad
Git permite aplicar controles de acceso estrictos, asegurando que solo las personas autorizadas puedan realizar cambios en las configuraciones. Además, es posible cifrar repositorios que contengan información sensible, añadiendo una capa adicional de seguridad.
Implementación rápida
Con Git, clonar configuraciones en nuevos equipos de red es rápido y sencillo, lo que agiliza la expansión y el despliegue de nuevas infraestructuras. Esto es especialmente beneficioso en entornos dinámicos donde se requieren cambios rápidos.
Integración con herramientas de gestión
Git se integra con una variedad de herramientas de gestión de redes y DevOps, proporcionando una gestión más integral y eficiente de las infraestructuras. Git usado conjuntamente con Ansible, Python e incluso Bash, permite automatizar determinadas tareas de las configuraciones.
Aprendizaje y adaptación
Adoptar Git fomenta buenas prácticas y una cultura de DevOps en la gestión de redes, facilitando la adaptación a nuevas tecnologías y metodologías. Los juniors pueden aprender cómo están configurados los equipos de red, sin necesidad de acceder físicamente a los equipos, o bien replicar una configuración en un equipo de laboratorio para poder “trastear” sin afectar a los equipos de producción.
En conclusión, usar Git para la configuración de equipos de red mejora la eficiencia, la seguridad, la fiabilidad y la colaboración, promoviendo una cultura de trabajo en equipo y el aprendizaje continuo. Implementar Git en tu flujo de trabajo de configuraciones de red puede transformar la manera en que gestionas tus infraestructuras de red, haciéndolas más robustas y flexibles.
Como prueba, en Tecnocrática, todos los equipos de red (tanto switches como routers, e incluso los puntos de acceso wifi que tenemos) los gestionamos con Git en nuestro GitLab auto alojado, eso permite que todas las configuraciones de VLAN, OSPF y BGP se gestionen desde ahí, y cuando alguien modifica algo, se revisa por el resto del equipo y se publican las modificaciones automáticamente, lo cual nos permite tener tanto control, como visibilidad en los cambios y en las configuraciones.
Deja una respuesta