Ansible es una herramienta de gestión de la configuración y una plataforma de automatización de TI de código abierto. Ayuda a automatizar el aprovisionamiento de software, la gestión de la configuración y el despliegue de aplicaciones.
Ansible no es como otras aplicaciones de gestión de la configuración. Esto es lo que la diferencia de otras herramientas de gestión de la configuración como Chef, CFEngine, Salt y Puppet.
Ansible Tower proporciona una interfaz basada en web para gestionar Ansible. Los usuarios de Ansible querían una interfaz intuitiva que fuera fácil de usar para realizar despliegues rápidos y supervisar la configuración.
Ansible Tower fue la respuesta de la gestión de Ansible. Cada lenguaje y cada framework tiene sus propias capacidades y matices. Este post tratará las diferencias entre Ansible, Ansible Tower y Ansible Tower.
Introducción a Ansible
Ansible es una herramienta de código abierto para la gestión de la configuración que automatiza el aprovisionamiento de software y la gestión de la configuración. Puede controlar y configurar varias máquinas desde una sola máquina servidor.
Funciona con un sistema basado en push en el que la configuración se «empuja» desde la máquina maestra a todos sus nodos.
Las configuraciones se escriben utilizando YAML. Son fáciles de entender y lo suficientemente sencillas como para que los administradores del servidor puedan crearlas. Funciona a través de SSH y utiliza OpenSSH como capa de transporte.
Todas las configuraciones de Ansible se encuentran en un conjunto de archivos YAML que llamamos playbook. Este playbook contiene tareas o plays. Para configurar nodos, una tarea utiliza un módulo.
Los playbooks son un lugar donde se pueden escribir las configuraciones. Todas las tareas escritas en un playbook se ejecutan en el mismo orden. Admite tanto la ejecución sincrónica como la asincrónica.
Puede ver varias máquinas anfitrionas en la imagen anterior. Estas máquinas anfitrionas se utilizan para ejecutar todas las configuraciones que hemos creado.
Pros de Ansible:
- Es gratuito y de código abierto
- Sencillo: No hay problemas para configurar Ansible
- Potente: Con Ansible, puede configurar miles de máquinas simultáneamente
- Flexible: Puede utilizarse en múltiples entornos.
- Sin agentes: No depende de nodos agentes, como Jenkins.
- Eficaz: No requiere ningún software adicional para ejecutarse.
Contras de Ansible:
- Difícil de instalar
- No se ejecuta en Windows
- Compatibilidad con versiones anteriores
Introducción a Ansible Galaxy
AnsibleGalaxy permite a los usuarios compartir y recuperar roles. Ansible Galaxy fomenta el uso de roles reutilizables en la configuración del servidor. Ansible Galaxy se utiliza a menudo en proyectos.
Ansible Galaxy es básicamente un repositorio público de descripciones de roles Ansible. Los README se incluyen con todos los roles. Proporcionan información sobre el uso y las variables del rol.
Ansible Galaxy tiene muchos roles que evolucionan y crecen constantemente. Los roles le permiten desglosar playbooks más grandes y crear una estructura estructurada. Puede modificar sus propios roles y luego utilizarlos como desee.
Estructura de roles de Ansible Galaxy
- README.md es el archivo Léame que describe el rol. El archivo readme contiene todos los detalles sobre los parámetros de entrada del rol y un yml de ejemplo.
- tasks – Todas las tareas pueden ser alistadas por el Rol en tasks. El punto de entrada del rol es Main.yml. Aquí comienza la ejecución. Este archivo puede contener otros archivos.
- manejadores – Esta categoría incluye manejadores que pueden ser utilizados en este rol o en cualquier otro rol.
- defaults – Las variables por defecto para el Rol.
- vars – Variables que son más importantes que las predeterminadas para el Rol.
- archivos – Estos archivos pueden ser desplegados usando Role.
- templates – Esta sección contiene plantillas que se pueden utilizar a través de Role.
- meta – Los metadatos pueden utilizarse para definir los roles en meta. Este archivo también debe incluir cualquier dependencia de Role.
- tests – Pruebas CI a ejecutar.
- library – Incrustación de módulos o plugins en roles. No creado por el comando init. También puede crear un módulo personalizado en Python en esta carpeta y luego utilizarlo en sus tareas.
Ansible Galaxy es una herramienta que le permite crear y gestionar roles. Verá nuevas versiones de Ansible y habrá cambios. La versión 2.2.8 de Ansible incorpora la función de colección. El contenido de Ansible se distribuye en colecciones. Se utilizan para empaquetar y distribuir módulos, playbooks y plugins.
Ventajas de Ansible Galaxy:
- Localice, reutilice y comparta de forma centralizada el contenido relacionado con Ansible
- Descargue fácilmente roles reutilizables para instalar la aplicación
- Aumenta la velocidad de despliegue
Contras de Ansible Galaxy
- Está impulsado por la comunidad, por lo que trabajar en un módulo no está garantizado
- Muchos roles de Ansible Galaxy tienen mala documentación
- La mayoría de los roles de Ansible Galaxy no son idempotentes
Introducción a Ansible Tower
Ansible Tower es la interfaz de usuario de Ansible. Es una solución basada en web que puede ser utilizada por muchos tipos diferentes de equipos de TI.
Ansible Tower puede compararse con el salpicadero de un coche. El salpicadero le muestra toda la información que necesita sobre el estado de su coche: velocidad, nivel de aceite, gasolina restante, etc. Ansible Tower parece un salpicadero, pero Ansible es el motor.
Ansible Tower permite a los usuarios ejecutar tareas de forma remota a través de una interfaz gráfica de usuario. Las tareas de Ansible pueden ejecutarse mediante playbooks. Estos playbooks pueden ejecutarse utilizando la CLI de Ansible. Sin embargo, Ansible Tower permite que la gestión y ejecución de playbooks se realice a través de la interfaz gráfica de usuario.
Puede ejecutar playbooks preexistentes o crear los suyos propios. Ansible Tower también ofrece notificaciones integradas. Esto permite notificar a equipos específicos cuando un trabajo se completa o falla. Este tipo de comunicación cruzada es vital para cualquier organización.
También ofrece control de acceso basado en roles (RBAC), que permite verificar quién está autorizado a ejecutar los trabajos. Esto permite que sólo determinados usuarios ejecuten trabajos en Ansible Tower. Esto suele ser necesario para cumplir las normativas de seguridad del sector.
Proporciona RBAC y también muestra un registro de auditoría que detalla quién era responsable de qué trabajo en un momento dado. Esto proporciona una seguridad adicional difícil de encontrar si se utiliza Ansible por sí mismo.
Ansible Tower permite la ejecución remota de código en diferentes aplicaciones. Una máquina virtual puede estar en mal estado y necesitar ser reiniciada, y Ansible Tower hace que sea fácil y seguro hacerlo.
La instalación remota de software puede utilizarse para corregir rápidamente agujeros de seguridad o restablecer contraseñas. Ansible Tower es su ventanilla única para toda su infraestructura de red y máquinas virtuales desplegadas a través de Ansible.
Ansible Tower, a diferencia de Ansible, no es gratuito. Hay dos versiones de Ansible Tower: Premium y Estándar. Depende de usted y de los requisitos de TI de su empresa cuál es la mejor versión. Las ediciones Standard son adecuadas para la mayoría de las operaciones de TI. Premium está diseñada para DevOps de misión crítica.
Red Hat le proporcionará información exacta sobre los precios cuando se ponga en contacto con ellos. La edición Estándar le costará aproximadamente 10.000 dólares al año para 100 nodos. La Premium le costará unos 14.000 dólares al año para el mismo número de nodos.
Pros de Ansible Tower:
- Disposición simple
- Le ayuda a crear una canalización CI/CD para la gestión del flujo de trabajo
- Permite programar un trabajo y notifica por cada error
- Gestión gráfica del inventario
- Muy fácil de configurar
Contras de Ansible Tower:
- Caro
- Basado en suscripción
- Resolución de conflictos de fusión imposible/no clara
- La depuración es compleja
Ansible vs Ansible Galaxy vs Ansible Tower
Ansible puede utilizarse como herramienta de automatización de TI. Puede desplegar software y configurar sistemas. También puede orquestar tareas de TI más complejas como despliegues continuos o actualizaciones roll-up sin tiempo de inactividad. Los objetivos principales de Ansible son la simplicidad y la facilidad de uso.
Ansible Tower, por su parte, se describe como «El cliente Git más potente para Mac y Windows». Puede utilizar todas las potentes funciones de Git en una interfaz gráfica de usuario más productiva. Ansible Galaxy puede utilizarse para almacenar roles Ansible. Ansible Galaxy es el equivalente de PyPI para Python o Maven para Java.
Ansible Tower no puede utilizarse sin Ansible. Ansible Tower puede utilizarse con Ansible Tower. Ansible es el motor que impulsa la gestión y el despliegue de su infraestructura.
Ansible Tower permite ver el funcionamiento interno de todo. Le permite ver y controlar el cumplimiento de la seguridad de la infraestructura de su organización.
Ansible Tower puede proporcionar RBAC para sus despliegues de Ansible. Ansible Tower también es una gran opción si busca profesionales no expertos en codificación para revisar su infraestructura.
Comparación de Ansible vs Ansible Tower vs Ansible Galaxy:
Ansible | Torre Ansible | Ansible Galaxy |
Herramienta de gestión de la configuración de código abierto | Interfaz de usuario de Ansible | Repositorio de roles y colección |
Ejecuta playbooks a través de CLI | Ejecuta playbooks a través de GUI | Ejecuta ansible-galaxy mediante CLI |
Versión inicial en 2012 | Versión inicial en 2015 | Versión inicial en 2016 |
Uso gratuito | A partir de 5000 $ al año para 100 nodos | Uso gratuito |
Muy sencillo de configurar y utilizar | Ofrece visibilidad de todo su entorno Ansible | Puede reutilizar bloques de código en diferentes playbooks |
Conclusión
Hasta aquí todo sobre Ansible, Ansible Tower y Ansible Galaxy y las diferencias entre Ansible, Ansible Galaxy y Ansible Tower. Una organización debe considerar sus requisitos con respecto a Ansible Tower porque es muy caro. Pero en general, Ansible es una excelente herramienta de CM para cualquier entorno tipo Linux.
También puede interesarle Tareas de administrador de sistemas que puede automatizar con Ansible.