Bueno, no necesitas ser un administrador profesional para tener tus propios servidores, o máquinas virtuales. Ansible puede ayudarte con esas tareas repetitivas y quiero compartir contigo una serie de tutoriales y ayudas de cómo configurarlo, y enseñarte el tiempo que te puede ahorrar.
¿Qué es ansible?
Lo primero, es dejar claro que Ansible es una herramienta de automatización. Puede parecer algo simple, o una tontería, pero pregúntate ¿cuántas veces has hecho la misma instalación o configuración de algún paquete en una máquina linux? LAMP, configurar una vpn, copiar unos archivos por git, ejecutar composer… cualquier cosa.
Si tu respuesta es que más de una, entonces ansible es para tí. Con esta herramienta que encima es open source (sino dudo que me molestara en hablar de ella, con lo que me gustan los proyectos donde se puede colaborar), puedes automatizar prácticamente cualquier cosa.
¿Pero qué puedo hacer con ansible?
Sí, me refiero a casi todo, precisamente porque no se limita a instalar paquetes, y no es algo cerrado que se configure siempre de la misma forma.
En esencia, lo que puedes hacer, es tener una máquina (física o virtual), con ansible instalado, con sus claves de acceso a otras máquinas, y en el que mantienes simplemente unos archivos de configuración.
Estos archivos (que tienes que crear previamente), definen lo que se instalará, y cómo en cada máquina. No solo eso, también te pueden servir para sincronizar carpetas, instalar aplicaciones de los repositorios, configurarlas, ejecutar comandos o cualquier cosa que te pase por la cabeza (como configurar una instalación de mysql con parámetros variables como user y pass).
Ansible para todos
Jeje, seguro que te ha venido a la cabeza Iniesta. Pues bien, uno de los puntos fuertes, es que tanto si te dedicas a gestionar servidores, como si tienes una raspberry con la que sueles trastear y no paras de cambiar las instalaciones, ansible te ahorrará toda una vida.
A que estaría bien volver a hacer una instalación completa de tu media center con kodi simplemente con ejecutar un comando, pues con Ansible puedes. Simplemente con un archivo de configuración, y los ficheros necesarios (si es que tienes que copiar algo), puedes tener instalado ese media center o raspberry en 200 máquinas diferentes y exactamente igual.
¿Pero qué pasa si quiero mantener algo actualizado?
Esta es la parte buena de Ansible, la versatilidad que tiene a la hora de configurarlo. Como comentaba antes, no se limita a una configuración cerrada. Puedes tener varios archivos, y ejecutar el que mejor te convenga.
O en lugar de eso, puedes crear unos archivos de instalación general, por ejemplo core.yml, mediacenter.yml, ofimatica.yml, e indicar a la instalación de una máquina en concreto cuales usar. Así lo conviertes en algo escalable.
Pero ahí no se termina todo, la potencia real de usar ansible, además de que una vez configurado tardas 2 segundos en cualquier cosa, es que puedes ejecutar la misma instalación en la misma máquina las veces que quieras.
Tiene opciones para todo, y entre ellas está la de ejecutar las órdenes de instalación, copia y demás solo si no existe ya en la máquina remota. Por ejemplo, si tienes php instalado en una máquina, y ahora por lo que sea quieres instalar apache también, solo tienes que agregar unas líneas, ejecutarlo, y ansible dejará tranquilo php y solo instalará apache que es lo que falta.
Vale, es mejor que una navaja suiza, ¿me robará tiempo?
Ahí ya depende de lo que te guste trastear, lo que te cueste entender las cosas, y si te quieres pasar por el blog a revisar los tutoriales (que iré añadiendo al final de este artículo).
En un principio Ansible no es muy difícil de configurar, eso sí, tienes que tener una máquina específicamente para ello, o al menos es lo más recomendable, precisamente porque puedes tener un backup de tu máquina ansible, y así en caso de pérdida o degradación crear otra y seguir donde lo dejaste.
Por el contrario, y aunque te cueste un tiempo al principio aprender como funciona, y crear tus propios archivos de configuración, al final ganarás tiempo. Piensa solamente cuantas horas te puedes pasar haciendo instalaciones, o volviendo a empezar desde 0 si acabas instalando paquetes que no necesitas.
Con ansible, puedes ir probando en una máquina virtual ejecutando los mismos paquetes, y una vez tienes toda la configuración, simplemente la eliminas y lo ejecutas sobre otra máquina que estará completamente limpia y sin nada innecesario. Más rendimiento, y para poner en producción muchas máquinas con bases parecidas (o completamente diferentes si configuras variables), te puede ahorrar muchas horas de trabajo u ocio.
Ahora sí, la mayor desventaja, es que si te gusta hacerlo todo a mano, con ansible te despides de ello una vez lo tienes todo a punto. Aunque siempre puedes seguir probando instalaciones y otras aplicaciones en tus máquinas auto-instalables.
Aquí irán los tutoriales y archivos de configuración
Ojo, no patrocina nadie este artículo, solo creo conveniente que te beneficies del ahorro de tiempo que te pueda dar esta herramienta, a fín de cuentas solo tenemos una vida y mejor si nos tomamos una cerveza que si tenemos que instalar 4 máquinas una tarde.
¿Has hecho muchas instalaciones similares? ¿Cuantas horas dirías que has perdido haciendo estas tareas? Comenta y comparte.