La cultura DevOps y los desarrollos basados en la nube cada día son más importantes en el sector tecnológico. Seguro que si estás en este mundillo, te has preguntado más de una vez ¿Qué es Ansible? y ¿Cómo empezar a usarlo? En este post te contaremos qué es esta herramienta y su potencial para tus proyectos.
¿Qué es Ansible?
Ansible es un software de gestión de la configuración automática y remota, que nos permite centralizar la configuración de numerosos servidores, dispositivos de red y Cloud Providers de una forma sencilla y automatizada.
¿Cómo instalar Ansible?
Ansible es un software muy fácil de instalar, para ello, solo se necesita un Ansible Controller ejecutando un sistema operativo basado en UNIX. También se pueden administrar equipos Windows, pero el Controller debe ser Linux/UNIX.
Para instalarlo en Windows, se debe ejecutar un subsystem de Linux, aunque no se suele recomendar. Otra opción para instalarlo y ejecutarlo es hacerlo a través de un contenedor Docker.
Términos y conceptos de Ansible
Además de saber qué es Ansible, es necesario que se conozcan una serie de términos y sus usos:
Inventarios
🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴
Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semanaAnsible trabaja, generalmente, ejecutando tareas contra distintos equipos remotos, dispositivos de red o APIs. Los inventarios, que pueden fijarse en formato Ansible INI, JSON o YAML, permiten definir dichos equipos, agruparlos y especificar valores grupales o individuales de estos.
Vienen definidos, por defecto, en /etc/ansible/hosts, pero también se puede establecer una ruta personalizada con -i <path>. Además, se puede predefinir la ruta en un archivo de configuración de Ansible: ansible.cfg.
Ad-Hoc Commands
Un comando Ad-Hoc usa la herramienta de línea de comandos /usr/bin/ ansible para mecanizar una única tarea en uno o más nodos administrados. Estos comandos son rápidos y fáciles, pero no reutilizables, se utilizan en el momento. A pesar de ello, son los primeros en ser aprendidos porque demuestran la simplicidad y el poder de Ansible; ya que los conceptos que se aprendan se pasarán directamente al lenguaje de un playbook.
Algunos ejemplos de comandos son Ansible -m (para módulos) o Ansible df h-.
//Qué es Ansible $ ansible [pattern] -m [module_name] -a "[module options]"
Playbooks
Estos son el lenguaje de configuración, implementación y orquestación de Ansible. Pueden describir la configuración que se desea que apliquen los equipos gestionados, o un conjuntos de fases en un proceso general de automatización.
En un nivel primario, los playbooks de Ansible se pueden utilizar para guiar configuraciones e implementaciones en equipos remotos.
Módulos
Se llaman también task plugins o library plugins, y son unidades discretas de código que se pueden usar desde la línea de comandos o en una tarea de Playbook. Estos módulos son desarrollados en PowerShell para Windows y en Python para Linux.
Variables
Es posible que algunos sistemas necesiten una configuración distinta a otros. En ciertos casos, el estado de un sistema o comportamiento observado, puede influir en la manera que se configuran otros sistemas. Es por ello que anaible utiliza variables, para ayudar a lidiar con desigualdades entre sistemas.
Condicionales
A menudo, el resultado de un playbook puede depender del valor de una variable, un fact o el resultado de una tarea previa. En algunos casos, los valores de las variables pueden depender de otras y se pueden crear grupos adicionales para administrar hosts en función de si estos coinciden con otros criterios.
Bucles
En ocasiones, se quiere repetir una tarea varias veces, para ello, los bucles de asnsible incluyen el cambio de propiedades en varios archivos y/o directorios con módulos (módulo file), la creación de múltiples usuarios (módulo de user) y la repetición de un paso de sondeo hasta que se alcance un cierto resultado.
Loop y with_ <lookup> son dos palabras que ofrece Ansible para poder crear bucles.
Roles
Son formas de cargar automáticamente una estructura de archivos/directorios, archivos no variables, tareas y controladores basados en una estructura de archivos conocida. Agrupar por roles permite compartir fácilmente estos con otros usuarios para así poder reutilizar códigos.
Los roles esperan que los archivos estén en ciertos directorios y deben incluir al menos uno de estos, aunque se puede eliminar cualquiera que no esté siendo utilizado.
Ansible Galaxy
Incluido en Ansible, es un sitio gratuito para buscar, descargar, calificar y revisar todo tipo de roles de Ansible desarrollados por la comunidad y puede que sea la forma perfecta para impulsar los proyectos de automatización.
Si además de saber qué es Ansible. quieres llevar todos estos conocimientos al código, aquí te dejamos la práctica que hemos hecho en el webinar para descubrir el potencial de esta herramienta.
En resumen, ¿qué es Ansible? Ansible es una de las miles de herramientas que todos los días nacen para hacer más fácil el desarrollo de tus proyectos. En el mundillo DevOps es fundamental esta y otras tecnologías para optimizar, integrar y potenciar tus desarrollos.
Ahora que sabes qué es Ansible, el siguiente paso será dominar todas estas herramientas y metodologías, descubre nuestro Bootcamp DevOps. En menos de seis meses te convertirás en un crack de esta nueva tendencia en programación, descarga aquí el temario del bootcamp.