¿Cuáles son ejemplos comunes de usos comunes para Ansible?

  • Gestión de la configuración

La gestión de la configuración se trata de lo que hace del servidor / host una vez que se ha activado. Si es un servidor, ya sea que lo configure como un servidor web, aplicación, base de datos o aplicación de middleware. Se trata de instalar, configurar entidades del sistema y gestionar el cambio a lo largo del tiempo. Ahora hay varios enfoques para administrar estas configuraciones, comenzando con el proceso manual, desde los scripts hasta el uso de imágenes doradas (plantillas) para las herramientas de automatización de generación actuales. Ansible, junto con herramientas como chef, marioneta, sal, tela, cae en el último. Ansible podría transformar un host de vainilla con sistema operativo base a lo que realmente pretendes que sea, de manera automatizada. Y podría repetir el mismo proceso en otros hosts. Ejemplos de gestión de configuración son,

  1. Instalación y configuración del servidor web apache en una caja base de linux
  2. Administrar paquetes del sistema, actualizaciones de seguridad y parches para el sistema
  3. Instalación y configuración de aplicaciones necesarias en computadoras portátiles Windows, Mac, Linux
  • Orquestación multinivel

La orquestación es donde Ansible realmente brilla sobre sus compañeros. Ahora, orquestación es un término ambiguo. Definitivamente deberías leer un artículo de Michael DeHaan Orchestration, sigues usando esa palabra

Un ejemplo de orquestación de varios niveles es el siguiente,
Está iniciando un clúster con 3 niveles, a saber, servidores web, un clúster de base de datos con 3 cassandra dbs y un equilibrador de carga. Cuando lo inicie, debe hacerlo en cierta secuencia,

  1. Instale y configure todos los nodos cassandra db, no inicie el servicio de inmediato.
  2. Descubra todos los nodos cassandra y configure cada nodo con los detalles del nombre de host / dirección IP de todos los demás nodos en el clúster / anillo db
  3. Inicie el servicio cassandra en todos los nodos al mismo tiempo
  4. Solo después de que el clúster de la base de datos esté activo, vaya e instale, configure el servidor web. El servidor web debe configurarse con todas las IP del servidor de bases de datos descubiertas anteriormente
  5. No solo es importante mostrar los servidores, sino también validar que realmente se estén ejecutando, escuchando ciertos puertos y sirviendo solicitudes. Ansible ha incorporado un mecanismo donde podría esperar hasta que pasen las pruebas.
  6. Solo después de que los servidores web estén activos y validados, configure los equilibradores de carga.

Ninguna otra herramienta de automatización, excepto Ansible, que conozco, maneja esto por sí misma. Muchas veces se encuentra otra herramienta de orquestación, como la tela, en combinación con la herramienta de gestión de la configuración, como títeres y chef.

  • Implementación de aplicaciones

Esto también está relacionado con la orquestación, por lo que no puede considerarse un punto completamente independiente. Cuando esté implementando una aplicación y haciendo lanzamientos, es posible que no desee derribar la infraestructura completa. Para lograr actualizaciones de tiempo de inactividad cero, es posible que desee aplicar actualizaciones en lotes, pocos servidores a la vez. Ansible maneja estas situaciones también. Hay una opción para definir el tamaño del lote.
p.ej
Teniendo en cuenta la aplicación de niveles múltiples que se discutió anteriormente, tiene 100 servidores web y está implementando una nueva versión de su aplicación. Con ansible podrías

  1. Comience a aplicar cambios en lotes, por ejemplo, 20 a la vez
  2. Definir tareas previas donde esos servidores se anulan el registro del equilibrador de carga
  3. Implementar aplicación. Esto es puramente parte de gestión de configuración.
  4. Ejecute pruebas. Validar el servidor web está bien.
  5. Defina las tareas de publicación, lo que haría que ese servidor vuelva a girar.

Existen varias tecnologías de código abierto que lo ayudarán a administrar tareas constantes o entornos grandes de una manera simple e indolora, lo que le ahorrará tiempo, dinero y esfuerzos, y ayudará a DevOps. Descubrimos que Ansible puede ser tu mejor amigo en esas situaciones. Algunas razones para usar ansible:

Es simple y fácil de aprender: creo que esta es la mejor característica de Ansible. ¡ES LEGIBLE PARA EL HUMANO! Lo que puede aumentar la velocidad de desarrollo y la productividad.

Escrito en python: Ansible fue escrito en Python, a diferencia de otras soluciones de la competencia que se construyeron con lenguajes como Ruby. En consecuencia, ponerlo en funcionamiento es más fácil, ya que las bibliotecas de Python están presentes de forma predeterminada en la mayoría de las distribuciones de Linux. También es un lenguaje que es más común para las tareas de administración y secuencias de comandos.

Sin agente: para administrar nodos, Ansible maneja todas las comunicaciones maestro / agente con SSH estándar o el módulo Paramiko, que es una implementación de Python del SSH2. La herramienta no requiere la instalación de ningún agente en los sistemas remotos para su administración. Mejores prácticas para la automatización con ansible

Cualquiera que piense que Chef y Puppet son demasiado complejos 🙂