Resumen
Ansible® es un motor open source que automatiza una gran cantidad de procesos informáticos, como la preparación de la infraestructura, la gestión de la configuración, la implementación de las aplicaciones y la organización de los sistemas.
Con la automatización que ofrece Ansible, puede instalar los sistemas de software, automatizar las tareas diarias, preparar la infraestructura, mejorar la seguridad y el cumplimiento normativo, ejecutar parches en los sistemas y trasladar la automatización a toda la empresa.
¿Cuál es la diferencia entre Ansible y Red Hat Ansible Automation Platform?
Capacitaciones en Ansible
Ansible Basics: Automation Technical Overview
En esta serie de videos en línea a los que podrá acceder cuando lo solicite, se presenta la gestión de la configuración y la automatización de Ansible; así como la preparación, la implementación y la gestión de la infraestructura informática en todos los entornos de nube, virtuales y físicos con dicha plataforma.
Red Hat Enterprise Linux Automation with Ansible
En este curso, aprenderá a utilizar la última versión de Red Hat® Ansible Automation Platform para automatizar las tareas de administración del sistema Linux®.Aprenderá las técnicas que necesita para automatizar la preparación, la configuración, la implementación de aplicaciones y la organización de sistemas utilizando la plataforma.
Funcionamiento de Ansible
Módulos
Ansible se conecta a los nodos y les inserta pequeños programas denominados módulos. Estos se utilizan para realizar tareas de automatización en Ansible y están diseñados para ser modelos del estado deseado del sistema. Luego, Ansible los ejecuta y los elimina al finalizar.
Sin ellos, usted dependería de comandos específicos y de la creación de scripts para realizar una tarea.Ansible se puede instalar en Red Hat® Enterprise Linux®, CentOS o Fedora; Ubuntu; Debian, y muchos otros sistemas operativos.
Contiene módulos integrados que pueden utilizarse para automatizar tareas. Si lo desea, también puede escribir sus propios módulos utilizando cualquier lenguaje que pueda generar datos en formato JSON, como Ruby, Python o Bash. En el caso de los módulos para la automatización de Windows, incluso es posible escribirlos en PowerShell.
Automatización sin agentes
Como Ansible no necesita agentes, no se requiere instalar ningún software en los nodos que gestiona. La plataforma lee la información del inventario para saber qué máquinas desea gestionar. Aunque cuenta con un archivo de inventario predeterminado, usted puede crear uno propio y definir los servidores que desea que administre.
La plataforma utiliza el protocolo SSH para conectarse a los servidores y ejecutar las tareas. De forma predeterminada, Ansible utiliza claves y un agente SSH y se conecta a las máquinas remotas con su nombre de usuario actual. No es necesario que inicie sesión como superusuario; puede hacerlo como cualquier otro y luego utilizar los comandos su o sudo para adquirir nuevos privilegios.
Una vez que Ansible se conecta, transfiere los módulos que requiere el comando o el playbook a la máquina remota para que los ejecute. La plataforma utiliza las plantillas de YAML comprensibles para las personas, de manera que los usuarios puedan programar la ejecución automática de las tareas repetitivas sin necesidad de aprender un lenguaje de programación avanzado.
Uso de Ansible para comandos específicos
También puede usar Ansible para ejecutar comandos específicos. Para ello, deberá ejecutar un comando o utilizar un módulo directamente desde la línea de comandos. De esta forma, no necesita utilizar playbooks. Aunque esta acción sirve para las tareas que se realizan por única vez, deberá usar un playbook de Ansible para las más complejas.
Playbooks de Ansible
Los playbooks de Ansible se utilizan para organizar los procesos de TI. Un playbook es un archivo YAML con una extensión .yml o .yaml, el cual contiene por lo menos un play y sirve para definir el estado deseado de un sistema. No es lo mismo que un módulo de Ansible, el cual es un script independiente que se puede utilizar dentro de un playbook de Ansible.
Los plays son conjuntos ordenados de tareas que se ejecutan en las selecciones del host desde el archivo de inventario de Ansible. Las tareas son los elementos que conforman los plays y realizan llamadas a los módulos de Ansible. En un play, las tareas se ejecutan en el orden en que se escribieron.
Con Ansible Lightspeed with IBM Watson Code Assistant, la creación de los playbooks de Ansible es más eficiente y accesible. Puede realizar una solicitud de tarea en inglés, y Ansible Lightspeed interactuará con los modelos base Watsonx de IBM para generar recomendaciones de código que luego se utilizarán para crear playbooks de Ansible.
Cuando Ansible comienza a ejecutarse, puede hacer un seguimiento del estado del sistema. Si al hacerlo detecta que la descripción del playbook sobre el sistema no coincide con su estado real, implementará todos los cambios necesarios para que se cumpla esta correspondencia.
Ansible incluye un "modo de verificación" que muestra la forma en que reaccionaría la plataforma, pero sin que se implementen cambios concretos, lo cual le permite validar los playbooks y los comandos específicos antes de modificar el estado del sistema. Los controladores de Ansible sirven para ejecutar una tarea específica luego de que se haya realizado un cambio en el sistema. Los activan determinadas tareas, y se ejecutan una sola vez, después de todos los demás plays del playbook.
Las variables le permiten modificar la manera en que se ejecutan los playbooks, y sirven para compensar las diferencias entre los sistemas, como las versiones de los paquetes o las rutas de los archivos. Ansible posibilita la ejecución de playbooks en diferentes sistemas. Las variables de Ansible se deben definir en función de la tarea que está realizando el playbook. Siguen un orden de prioridad que establece cuáles prevalecerán sobre otras, lo cual se debe tener en cuenta a la hora de incluirlas en el playbook.
Las funciones de Ansible son un tipo de playbook especial completamente autónomo y portátil que incluye las tareas, las variables, las plantillas de configuración y otros archivos de soporte que son necesarios para llevar a cabo una organización compleja. Un conjunto puede contener varias funciones, lo cual facilita el intercambio de contenido a través de Automation Hub y Ansible Galaxy.
Para trabajar con Ansible, también tendrá que comprender en qué consisten dichos conjuntos de contenido. Se trata de un formato de distribución para el contenido de Ansible que puede incluir playbooks, funciones, módulos y plugins o complementos.
Gestión de la configuración con Ansible
La gestión de la configuración es un proceso que busca mantener los sistemas informáticos, los servidores y el software en un estado deseado y uniforme. Permite garantizar que un sistema funcione como se espera a medida que se realizan cambios. Esto era algo que los administradores de sistemas solían hacer manualmente o con scripts personalizados.
Cuando se utiliza Red Hat Ansible® Automation Platform como una herramienta para la gestión de la configuración, su función es almacenar el estado actual de los sistemas y ayudar a mantenerlo.
Con las herramientas de gestión de la configuración, se agilizan los cambios y las implementaciones, se elimina la posibilidad de que se cometan errores humanos, y la gestión del sistema se torna predecible y flexible. También permiten realizar un seguimiento del estado de los recursos y evitar repetir ciertas tareas, como instalar el mismo paquete dos veces.
Si automatiza la gestión de la configuración con Ansible, podrá mejorar la capacidad de recuperación del sistema tras un evento importante. Si un servidor falla por alguna razón desconocida, puede implementar uno nuevo rápidamente y obtener un registro de las modificaciones o las actualizaciones efectuadas para identificar el origen del problema.
Preparación de los sistemas con Ansible
En la actualidad, la infraestructura suele definirse en el software, y la virtualización y los contenedores agilizaron los procesos de preparación y eliminaron la necesidad de preparar y gestionar sistemas de hardware con frecuencia.
Cuando la preparación de las implementaciones se realiza de forma manual, resulta difícil hacer un seguimiento de los cambios y controlar las versiones, así como evitar los errores y las faltas de uniformidad. Al automatizar la preparación de la infraestructura se simplifica mucho el proceso, por lo que debería ser el primer paso en la automatización del ciclo de vida operativo de sus aplicaciones.
Ansible se utiliza para preparar la infraestructura subyacente del entorno, los hosts virtualizados y los hipervisores, los dispositivos de red y los servidores dedicados (bare metal). También permite instalar servicios; agregar hosts informáticos, y preparar recursos, servicios y aplicaciones dentro de la nube.
Puede utilizar un playbook de Ansible para describir el estado deseado de la infraestructura, y la plataforma se encargará de prepararlo. Si utiliza un playbook para codificar su infraestructura, se asegurará de preparar siempre el mismo entorno.
Automatización de la implementación
Al automatizar la implementación, puede trasladar el software del entorno de prueba al de producción sin utilizar procesos manuales. Como resultado, se obtiene una implementación confiable y repetible en todo el ciclo de distribución del software. La automatización de la implementación es importante a la hora de habilitar las prácticas de DevOps y gestionar un canal de CI/CD.
Este proceso no funciona si el equipo de desarrollo implementa las aplicaciones o configura los entornos de una manera, y los equipos de operaciones lo hacen de otra. El entorno debe ser uniforme para poder automatizarse. Es por eso que se debe utilizar el mismo proceso de implementación para todos los entornos, incluso para el de producción.
Por lo general, un proceso de implementación sigue tres pasos fundamentales (aunque puede incluir más): el diseño, la prueba y la implementación. Este proceso respalda su capacidad de automatizar el proceso de implementación y garantiza que el código pase rápidamente de la etapa de revisión y confirmación de cambios a la de implementación. Ansible le permite implementar aplicaciones de varios niveles de manera confiable y uniforme utilizando un marco común. Puede usar los playbooks para configurar los servicios necesarios e insertar los grandes paquetes binarios (también denominados "artefactos") de las aplicaciones.
El proceso de organización con Ansible
En general, se habla de automatización para referirse a una sola tarea. Esto difiere de la organización, la cual implica automatizar un proceso o un flujo de trabajo que incluye muchos pasos en varios sistemas diferentes.
La organización de la nube puede utilizarse para varias tareas, como preparar o implementar servidores, asignar capacidad de almacenamiento, crear máquinas virtuales y gestionar las redes, entre otras. Para ello, se pueden emplear muchas herramientas diferentes. Ansible es una de ellas. La gestión y la configuración de los servidores, así como la implementación de las aplicaciones, también se pueden organizar con herramientas como Ansible.
A la hora de implementar las aplicaciones, es preciso ocuparse de la función, la instalación y los ajustes específicos de cada servicio de frontend y backend, base de datos, herramienta de supervisión, red y sistema de almacenamiento. La organización garantiza que se sigan los pasos tal como usted lo necesita. Ansible favorece la organización porque ejecuta las tareas del playbook según el orden en el que están escritas. De esta forma, usted tiene la certeza de que la implementación de las aplicaciones se llevará a cabo en el orden correcto.
Automatización de la red
La automatización de la red utiliza la lógica programable para gestionar los servicios y los recursos de red. Permite que los equipos de operaciones de red (NetOps) configuren, protejan, integren y ajusten la infraestructura de red y los servicios de aplicaciones con mayor rapidez que cuando los usuarios lo hacen de forma manual.
A pesar de que las tecnologías subyacentes han evolucionado, la gestión de las redes lleva décadas sin sufrir grandes cambios. Las redes por lo general se crean, operan y mantienen de forma manual. Sin embargo, los enfoques manuales tradicionales para la configuración y la actualización de las redes son demasiado lentos y propensos a errores, por lo cual no pueden satisfacer de forma efectiva las necesidades de las cargas de trabajo, que cambian rápidamente.
Si se automatiza la gestión de los servicios y los recursos de red, los equipos de operaciones de red obtendrán más agilidad y flexibilidad para respaldar las demandas empresariales modernas de manera eficiente.
Automatización de la seguridad
La automatización de la seguridad consiste en usar las tecnologías de automatización para realizar tareas con menos intervención humana e integrar los procesos, las aplicaciones y la infraestructura de seguridad. La automatización puede ayudarlo a optimizar las operaciones cotidianas y a integrar la seguridad a los procesos, las aplicaciones y la infraestructura desde el comienzo. Si automatiza todo el proceso de seguridad, logrará reducir el costo promedio de un fallo de seguridad un 95 %.
Además, podrá identificar, validar y remitir las amenazas con mayor rapidez y sin intervención manual. Si ocurre un incidente de seguridad, los equipos encargados de esta área pueden usar Ansible para agilizar la aplicación simultánea de correcciones en los sistemas afectados de todo su entorno, y responder a los incidentes con mayor rapidez.
Ansible permite que los equipos de seguridad configuren una secuencia de tareas que compartan el inventario, los playbooks o los permisos para automatizar por completo las investigaciones o las correcciones. Red Hat Ansible Automation Platform se integra a servicios externos de agrupación de registros para que los equipos de seguridad identifiquen las tendencias, analicen los eventos de la infraestructura, supervisen las anomalías y establezcan relaciones entre los diferentes eventos.
Motivos para elegir Red Hat para la automatización
La gran comunidad open source y Red Hat colaboran en el diseño de las tecnologías de automatización. Nuestros ingenieros mejoran las funciones, la confiabilidad y la seguridad para garantizar que su empresa y la TI funcionen y permanezcan estables y seguras.
Red Hat Ansible Automation Platform incluye todas las herramientas que se necesitan para implementar la automatización en toda la empresa, como los playbooks y los sistemas de análisis. Ofrece un panel visual, control de acceso basado en funciones y otras herramientas para que los usuarios concentren y controlen la infraestructura de TI, lo cual ayuda a reducir la complejidad operativa.
Gracias a las suscripciones de Red Hat, podrá acceder al contenido certificado de nuestro ecosistema sólido de partners, a servicios de gestión alojados y a un servicio de soporte técnico del ciclo de vida para que los equipos creen, gestionen, ajusten y extiendan la automatización a toda la empresa. También podrá aprovechar el conocimiento especializado que hemos obtenido de nuestras asociaciones exitosas con miles de clientes.
Las empresas no solo deben poder implementar la automatización fácilmente; también necesitan compartirla con los equipos y reutilizarla en todos los proyectos sin perder el control ni la capacidad de supervisión. Si adopta la solución adecuada, podrá implementar las aplicaciones y los servicios nuevos más rápido, gestionar la infraestructura de TI con mayor eficiencia y aumentar la productividad durante el desarrollo de las aplicaciones.