ansible

  • En artículos previos expliqué cómo instalar Ansible desde los fuentes y cómo configurar el inventario. Ahora veamos de qué forma Ansible puede simplificarlos el día a día. Es decir, qué tareas es posible resolver de manera más simple y rápida gracias utilizando esta herramienta. En esta oportunidad voy a demostrar cómo actualizar múltiples servidores Debian en simultáneo y paralelo utilizando el módulo apt.

  • En este artículo voy a demostrar cómo crear un playbook de Ansible para saber cuáles de tus servidores Debian están haciendo uso de los backports. Este ejemplo sirve para ilustrar cómo es posible extraer información de múltiples servidores al mismo tiempo utilizando comandos simples (grep/cat/find) junto el módulo shell.

  • En el artículo Cómo autenticar con clave pública en SSH expliqué detalladamente todos los pasos necesarios para autenticar con clave pública un usuario a través de SSH.

    Para que el usuario con el que ejecutamos ansible (en este caso root) sea capaz de autenticar con clave pública (sin contraseña) en los servidores, será necesario agregar la clave pública del mismo en cada archivo authorized_keys perteneciente al usuario con el cual queremos autenticar en cada sistema remoto. Es una tarea tediosa, pero debe realizarse una única vez.

  • ¿Cómo administrar exitosamente un centenar de servidores? El problema de todo SysAdmin. Afortunadamente existen herramientas de administración masiva y centralizada como Ansible. A través de las cuales un administrador puede ejecutar un simple comando en muchos sistemas remotos heterogéneos al mismo tiempo. Ansible es un sistema de automatización open source que simplifica las tareas de instalación y provisión de software, gestión de configuración, y despliegue de aplicaciones. Es uno de los sistemas de gestión de configuración (orchestration) más utilizados junto con Puppet, Chef y Salt.

    ¿Por qué elegí Ansible y no otro? Básicamente por los argumentos a favor y en contra presentes en el artículo Review: Puppet vs. Chef vs. Ansible vs. Salt publicado por Paul Venezia para InfoWorld. Pero principalmente porque es un sistema de configuración que no requiere la instalación de ningún agente o software en los sistemas a administrar de manera remota (más allá del intérprete de Python, claro está, que de todas formas se encuentra presente por defecto en la mayoría de las distribuciones GNU/Linux).

  • Supongamos que necesitamos recuperar un parámetro por entrada estándar de manera interactiva en un playbook de Ansible. Es posible hacerlo utilizando la sección vars_prompt. Este artículo demuestra un ejemplo de uso.

  • Este artículo explica cómo definir variables en una tarea de un playbook de Ansible para ser utilizadas luego. Por ejemplo, es posible obtener la fecha actual para ser utilizada en cualquier tarea, siempre dentro de un mismo playbook claro está.

  • Continuando con mi instalación de Ansible, llegó el momento de configurar el inventario (conjunto de servidores a administrar de forma remota y centralizada) agrupando los hosts de la manera más organizada y conveniente posible. Este artículo explica cómo crear grupos, grupos de grupos (grupos anidados) y variables globales (configuraciones que afecten a todos los hosts del inventario).

  • Debido a los recientes cambios en los repositorios de Debian, tuve la necesidad de ajustar la configuración de APT en todos mis servidores de Debian 7 y 8 en desarrollo y producción. Este artículo demuestra cómo utilizar el módulo "lineinfile" de Ansible para editar archivos en múltiples sistemas al mismo tiempo utilizando un simple playbook YML.

  • Luego de muchas actualizaciones se apilaron unas cuantas versiones del kernel Linux en mis servidores Debian. Veamos cómo ejecutar apt-get autoremove en todos los servidores Debian al mismo tiempo con un simple playbook de Ansible.

  • Anteriormente expliqué cómo obtener información desde múltiples servidores en paralelo utilizando comandos personalizados con Ansible. Ahora voy a demostrar cómo extraer información directamente desde variables de Ansible, particularmente cómo obtener el detalle de todos los sistemas de archivos y puntos de montaje de todos los servidores en paralelo, utilizando un simple playbook.

  • Previamente expliqué cómo instalar Ansible desde los fuentes en FreeBSD, en esta oportunidad me gustaría compartir los pasos necesarios para hacerlo en un sistema OpenBSD 6.0.

  • Estos días estuve peleando (sin éxito) por tratar de evitar darle a Ansible root access irrestricto en mis targets Linux. He aquí mi experiencia y conclusión.

  • En el día a día de un SysAdmin hay cientos de tareas repetitivas que resultan ultra aburridas. Es allí donde viene Ansible al rescate. Gracias a Ansible es posible automatizar todas esas tareas triviales y aburridas para no tener que hacerlas nunca más. En lugar de seguir un tutorial con varios pasos entre diferentes sistemas (tedioso y propenso a errores), ejecutar un simple comando, 1 sólo, y dejar que Ansible lo haga por nosotros. Todo se resume a "scriptear" la tarea, convertirla en una descripción de pasos en formato YML que Ansible sea capaz de realizar.

    Este es uno de esos ejemplos. Muchas veces es necesario compartir logs u otro tipo de información con gente por fuera del departamento de IT, pero que es responsable o representante de cierto sistema para los usuarios, clientes o proveedores. Este tipo de información no es conveniente compartirla por correo electrónico u otros medios, con lo cual preferimos subirla a uno de nuestros servidores Web en un directorio secreto protegido con contraseña. Desde allí la persona que requiere tal información puede descargarla y hacer con ella lo que necesite. En mi caso, suelen solicitarme con frecuencia los logs de un servidor Glassfish para enviarlos al proveedor del software (a fin de diagnosticar alguno de los miles de errores que tiene).

    El día de hoy me harté. Cuando cierta tarea se vuelve repetitiva, es decir su frecuencia aumenta hasta cierto período, llega el momento de automatizarla. En el pasado utilizaba scripts Bash a tal fin, pero hoy en día es mucho más fácil y rápido crear un simple playbook de Ansible en formato YML.

  • Algo que había quedado pendiente en mis anteriores artículos dedicados a Ansible, era la configuración y uso de playbooks. Los playbooks son el lenguaje de configuración, despliegue y orquestación de Ansible. Se utilizan para describir una política a aplicar sobre un sistema o conjunto de sistemas, o para ejecutar una serie de pasos en cualquier proceso de IT.

    Este artículo demuestra la configuración y uso de un playbook que permita realizar una tarea básica y elemental: actualizar el sistema operativo de todos los hosts en nuestro inventario.