¿Ha oído hablar de Ansible pero no está seguro de lo que es? No se preocupe, conocerá Ansible en los próximos 5 minutos.
¿Qué es Ansible?
Ansible es una herramienta DevOps de código abierto que puede ayudar a la empresa en la gestión de la configuración, el despliegue, el aprovisionamiento, etc. Es fácil de desplegar; aprovecha SSH para comunicarse entre servidores. Utiliza el libro de jugadas para describir los trabajos de automatización, y el libro de jugadas utiliza un lenguaje muy sencillo, YAML.
Ansible proporciona fiabilidad, coherencia y escalabilidad a su infraestructura informática. Puede automatizar configuraciones de bases de datos, almacenamiento, redes, cortafuegos utilizando Ansible. Se asegura de que todos los paquetes necesarios y el resto del software sean coherentes en el servidor para ejecutar la aplicación.
Tomemos un ejemplo; usted tiene una versión de depuración de una aplicación que está construida en visual C . Ahora bien, si quiere ejecutar esa aplicación en un ordenador, necesitaría cumplir algunos requisitos previos como los DLL de la biblioteca de Microsoft Visual C y necesitaría tener visual C instalado en su ordenador. Así pues, esta es la parte en la que Ansible se asegurará de que todos estos paquetes básicos y todo el software estén instalados en su ordenador para que su aplicación pueda ejecutarse sin problemas en todos los entornos, ya sea de prueba o de producción.
También guarda todos los datos históricos de su aplicación, por lo que si en algún momento desea volver a la versión anterior, o quiere actualizarla, podrá hacerlo fácilmente.
Echemos un vistazo a algunas de las siguientes características.
Agentless – Lo que significa que no hay ningún tipo de software o agente que gestione el nodo como otras soluciones como puppet y chef.
Python – Construido sobre python, que es rápido y uno de los lenguajes de programación más robustos en el mundo actual.
SSH – Protocolo de autenticación de red sin contraseña muy sencillo y seguro. Por lo tanto, su responsabilidad es copiar esta clave al cliente
Arquitectura Push – Empuje las configuraciones necesarias a ellos, los clientes. Todo lo que tiene que hacer es, escribir esas configuraciones (playbook) y empujarlas todas a la vez a los nodos. Ya ve lo potente que puede ser empujar los cambios a miles de servidores en cuestión de minutos.
Configuración – un requisito mínimo y la configuración necesaria para que funcione.
Arquitectura de Ansible
Comencemos con la nube pública/privada que es el servidor Linux. También puede actuar como repositorio de todas las instalaciones y configuraciones informáticas.
La arquitectura anterior tiene un montón de máquinas host a las que el servidor ansible se conecta y empuja los playbooks a través de SSH.
Dispone de un motor de automatización ansible mediante el cual los usuarios pueden ejecutar directamente un playbook que se despliega en los hosts. Hay múltiples componentes en el motor de automatización ansible. El primero es un inventario de hosts. Es una lista de todas las direcciones IP de todos los hosts.
A continuación, están los módulos. Ansible viene con cientos de módulos incorporados y los módulos son esas piezas de código que se ejecutan cuando se ejecuta un playbook. Un playbook contiene plays, un play contiene diferentes tareas y una tarea incluye módulos.
Cuando ejecuta un libro de jugadas, son los módulos los que se ejecutan en sus hosts, y estos módulos contienen acciones en ellos. Así, cuando ejecuta un playbook, esas acciones tienen lugar en sus máquinas anfitrionas. También puede crear sus propios módulos personalizados. Todo lo que debe hacer es escribir unas pocas líneas de código y convertirlo en su módulo, y podrá ejecutarlo cuando quiera.
A continuación, la arquitectura tiene playbooks. Los playbooks aquí realmente definen su flujo de trabajo porque cualquier tarea que escriba en un playbook, se ejecuta en el mismo orden en que las ha escrito. Por ejemplo, si ha escrito que primero se instale un paquete y luego se inicie, hará lo mismo. Los playbooks son muy sencillos para escribir código YAML. El código YAML es un lenguaje de serialización de datos muy sencillo; es bastante parecido al inglés.
A continuación, en la arquitectura están los plugins. Aquí los plugins son un tipo especial de módulos. Estos plugins se ejecutan antes de que un módulo se ejecute en los nodos. Los plugins se ejecutan en la máquina de control principal con fines de registro. Tiene plugins de devolución de llamada porque esto le permite engancharse a diferentes eventos de ansible para propósitos de visualización y registro. Los plugins de caché se utilizan para mantener una caché de hechos para evitar costosas operaciones de recopilación de hechos. Ansible también tiene plugins de acción, que son módulos front-end, y pueden ejecutar tareas en la máquina controladora antes de llamar a los propios módulos.
La arquitectura dispone de plugins de conexión. No siempre es necesario utilizar un SSH para conectarse con sus máquinas anfitrionas; también puede utilizar un plug-in de conexión. Por ejemplo, ansible le proporciona un plugin de conexión de contenedores Docker y utilizando ese plugin de conexión, puede conectarse fácilmente a todos sus contenedores Docker y empezar a configurar de inmediato.
Eso fue todo sobre la arquitectura. A continuación, permítame contarle cómo funciona exactamente.
¿Cómo funciona Ansible?
Ansible funciona conectándose a nodos y enviando pequeños programas llamados módulos ansible. A continuación, Ansible ejecuta estos módulos a través de SSH por defecto y luego los elimina cuando han terminado.
El nodo de gestión de Ansible es el nodo de control, que controla toda la ejecución del Playbook. Es el nodo desde el que se ejecuta la instalación, y el archivo de inventario proporciona la lista del host donde deben ejecutarse los módulos. El nodo de gestión realiza la conexión ssh y, a continuación, ejecuta los módulos en las máquinas anfitrionas e instala el producto. Elimina los módulos una vez instalados. Así es como funciona Ansible.
A continuación, puede que le interese aprender a instalar y configurar Ansible.
Conclusión
Espero que ahora tenga una idea sobre Ansible para ponerlo en marcha. Ansible es un cambio de juego en la forma de gestionar la infraestructura y si usted es Sysadmin o desarrollador, entonces puede comprobar hacia fuera esta formación práctica para avanzar en las habilidades.