IT Blog

Configuracion Documentacion

¿Que es Ansible?

Ansible es una herramienta de software que proporciona una automatización sencilla pero potente para el soporte informático multiplataforma. Está destinado principalmente a los profesionales de TI, que lo utilizan para la implementación de aplicaciones, actualizaciones en estaciones de trabajo y servidores, aprovisionamiento en la nube, administración de configuración, orquestación dentro del servicio y casi cualquier cosa que un administrador de sistemas haga semanal o diariamente. Ansible no depende del software del agente y no tiene una infraestructura de seguridad adicional, por lo que es fácil de implementar.

Debido a que Ansible tiene que ver con la automatización, requiere instrucciones para realizar cada trabajo. Con todo escrito en forma de script simple, es fácil controlar las versiones. El resultado práctico de esto es una contribución importante al movimiento de la «infraestructura como código» en TI. La idea es que el mantenimiento de la infraestructura del servidor y del cliente pueda y deba tratarse de la misma manera que el desarrollo de software, con repositorios de autodocumentación, pruebas, y soluciones ejecutables capaces de hacer funcionar una organización independientemente de los cambios de personal.

Si bien Ansible puede estar a la vanguardia de la automatización, la administración de sistemas y DevOps, también es útil para los usuarios cotidianos. Ansible le permite configurar no solo una computadora, sino potencialmente toda una red de computadoras a la vez, y su uso no requiere habilidades de programación. Las instrucciones escritas para Ansible son legibles por cualquiera y faciles de entender.

Como funciona Ansible

En Ansible, hay dos categorías de computadoras: el nodo de control y los nodos administrados. El nodo de control es una computadora que ejecuta Ansible. Debe haber al menos un nodo de control, aunque también puede existir un nodo de de respaldo. Un nodo gestionado es cualquier dispositivo administrado por el nodo de control.

Ansible Funciona conectándose a nodos (clientes, servidores o lo que sea que esté configurando) en una red y luego enviando un pequeño programa llamado módulo Ansible a ese nodo. Este ejecuta estos módulos a través de SSH y los elimina cuando termina. El único requisito para esta interacción es que su nodo de control tenga acceso de inicio de sesión a los nodos administrados. Las claves SSH son la forma más común de proporcionar acceso, pero también se admiten otras formas de autenticación.

Qué hace Ansible

El término módulos suena complejo, pero la mayor parte de la complejidad la maneja Ansible y no el usuario. Un módulo está escrito para ser un modelo del estado deseado de un sistema, lo que significa, que cada módulo define lo que debería ser cierto en cualquier nodo administrado. Por ejemplo, si un administrador de sistemas decide que todas las estaciones de trabajo en una organización deben tener la versión X.Z de LibreOffice instalada, entonces depende del módulo de empaquetado determinar si cada nodo tiene LibreOffice X.Z en él. Si Ansible encuentra un nodo administrado con LibreOffice X.Y instalado, entonces detecta el sistema operativo y ejecuta la rutina necesaria para actualizarlo a LibreOffice X.Z. De esta manera, cada estación de trabajo de una organización puede actualizarse de la noche a la mañana con el software compatible con el departamento de TI.

Sin embargo, mantener la infraestructura es más que simplemente verificar las versiones de software. Cuando las personas hablan sobre el uso de Ansible, a lo que realmente se refieren es al uso de módulos, porque esas son las partes que realizan tareas específicas. Si necesita automatizar algo en varias computadoras, eche un vistazo a los módulos para encontrar el que maneja la tarea que necesita realizar y luego instale Ansible para que pueda configurar e invocar ese módulo. Si es programador, también puede escribir sus propios módulos personalizados para realizar tareas especializadas. Si su módulo es útil en general, también puede enviarlo al proyecto Ansible para su inclusión y otros puedan beneficiarse de su trabajo.

Playbooks de Ansible

Si bien los módulos proporcionan los medios para realizar una tarea, la forma en que los usa es a través de un playbook de Ansible. Un playbook es un archivo de configuración escrito en YAML que proporciona instrucciones sobre lo que se debe hacer para llevar un nodo administrado al estado deseado. Los playbooks están pensados para ser simples, legibles  y auto-documentables. También son idempotentes, lo que significa que un playbook se puede ejecutar en un sistema en cualquier momento sin tener un efecto negativo sobre él. Si un playbook se ejecuta en un sistema que ya está configurado correctamente y en el estado deseado, ese sistema aún debería mantenerse en buen estado.

Un playbook puede ser muy simple, como este que instala, como usuario privilegiado, el servidor HTTP Apache en cualquier nodo del grupo de servidores web de un departamento de TI:


– name: Apache server installed
  hosts: webservers
  become: yes

Los playbooks también pueden ser muy complejos, con condicionales y variables. Sin embargo, debido a que la mayor parte del trabajo real lo realizan los módulos de Ansible, los playbooks siguen siendo breves, legibles y claros a pesar de que pueden orquestar redes completas de nodos administrados.

Aprendiendo Ansible

Puede aprender Ansible usándolo en casa o en el trabajo. Si eres nuevo en YAML, tómate un tiempo para aprenderlo y luego escribe tu primer playbook. Si prefiere comenzar poco a poco, puede instalar Ansible en su computadora personal y usarlo para administrarse a sí mismo o solo a algunas computadoras en su red doméstica. Lo más importante es probar diferentes módulos para que se sienta cómodo usando y configurando otros nuevos. Son su puerta de entrada para hacer que sus nodos se ajusten a los diseños de su infraestructura, y Ansible es el motor que lo hace posible.

Si necesitas ayuda para la administración de tus servidores y equipos en la red no dudes en contactarnos!!!