Ir al contenido principal

Ansible Playbooks: Tutorial p1


Como revisamos en un artículo anterior, Ansible se ha convertido en nuestra herramienta favorita. El Poder que entrega la Automatización es buena adicción, que lleva a contar con la seguridad de que tu plataforma siempre funcionará como corresponde.
En esta primera parte de dos artículos aprenderemos más sobre que son los Playbooks y su importancia al momento de automatizar el control de nuestras plataformas. Al final del segundo artículo ya tendremos los conocimientos necesarios para como ejemplo: Instalar un Servidor LAMP de forma autónoma.
Primero revisemos algunos términos importantes de Ansible:
  • Máquina de Administración, es la máquina donde tenemos instalado Ansible, puede ser nuestro laptop, y desde donde se ejecutaran las tareas. Recuerda que con ansible no necesitas servidores o agentes.
  • Inventory, es el archivo donde registramos los servidores sobre los cuales ejecutaremos las tareas,
  • Playbook, un archivo donde listamos las tareas que de deben ejecutar, es como una receta de concina. Se escribe en formato YAML
  • Task, un bloque dentro del Playbook que define una acción específica a realizar, pj: instalar un paquete.
  • Module, son como Plugins que permiten realizar tareas de forma más fácil. Muchos vienen, como yum para instalar software, y también nosotros podemos crear los nuestros.
  • Role, una forma de ordenar los diferentes Playbooks.
  • Play, se refiere a la ejecución de un Playbook.
  • Facts, variables dentro de Ansible que contienen información sobre los servidores. Ej: Sistema Operativo, Cantidad de Ram, Direcciones IP, etc.
  • Handlers, pequeño código que se usa cuando algo cambia. Por ej: si actualizas el archivo de configuración de Apache, un Handler re-iniciará el servicio httpd.

Tasks

Una Task (Tarea) define un sólo proceso que debe ser ejecutado durante el procedimiento. Generalmente se basa en el uso de algún módulo o la ejecución de un comando de shell (que en realidad es un módulo creado para ejecutar comandos). Este es un ejemplo de como se define una Task:
1
2
- name: Instalar nmap
  yum: name=nmap state=latest
La parte name es opcional, pero nosotros recomendamos su uso para describir que es lo que hará la tarea. yum es un módulo que viene incluído en Ansible y se encarga de todo lo que tiene que ver con la gestión de paquetes para distribuciones basadas den Red Hat. Esta Task le indica a Ansihle que el paquete nmap debe estar instalado en su última version, lo cual hará que yumlo instale si no está instalado, y que lo actualice si existe una versión más nueva.

Playbook

Los Playbooks son el punto de inicio al trabajar con Ansible. Ellos contienen información de en que máquinas se debe ejecutar el provisionamiento, como también las directivas y pasos que se deben realizar y el orden de su ejecución. A continuación un ejemplo de Playbook que primero crea un directorio y luego descarga un archivo en el:
1
2
3
4
5
6
7
8
---
- hosts: all
  tasks:
     - name: Crea directorio descargas
       file: path=/tmp/descargas state=directory mode=0755

     - name: Descarja Logo
       get_url: url=http://blog.itlinux.cl/images/logo_mini.png dest=/tmp/descargas/logo_mini.png
Como indicamos anteriormente, los Playbooks están escritos usando el formato YAML, el cual requiere que la identación sea perfecta para poder procesar el documento, por lo cual recomendamos que trabajes con un editor de texto que entienda el formato YAML, como puede ser ATOM.
Algunas cosas importantes del ejemplo:
  • hotst: all, indica este Playbook se ejecutará en todos los hosts definidos en el Inventory
  • tasks, es el conjunto de Tareas a ejecutar.

Ejecutando el Playbook

Una vez que tengas listo tu Playbook es momento de hacerlo funcionar, esto se realiza con el comando ansible-playbook, por ejemplo:
1
$ ansible-playbook -i hosts download_itlinux_logo.yml

Palabras al cierre

Esperamos que este artículo vaya aumentando tus ganas de Automatizar cuanto puedas en tu vida y veas lo simple que es hacerlo con Ansible.
Por ahora recomendamos que mientras esperan la segunda parte, jueguen con algunos ejemplos de Playbooks.

Comentarios

Entradas más populares de este blog

Solución al problema “sudo: command not found” en Linux

Al instalar una distribución GNU/Linux, lo primero que se suele hacer es ejecutar los siguientes comandos de actualización del sistema: Terminal 1 2 sudo apt - get update sudo apt - get upgrade Sin embargo, en Debian nos encontraremos con el problema de que el comando sudo  no se encuentra. Esto depende de cómo hayamos realizado el proceso de instalación, ya que si se especifica una contraseña para el usuario  root  durante la instalación,  sudo  no será instalado por defecto. Por el contrario, si no se especifica una contraseña, sí se instalará. En caso de obtener el error  “sudo: command not found” , debemos realizar los siguientes pasos para solucionar esta situación. 1. Cambiar al usuario root Desde la terminal, introducimos el comando  su  para hacer el login con el usuario  root . Pedirá una contraseña, que será la que hayamos especificado en el proceso de instalación. 2. Instalar el paquete “sudo” Ahora que ya tenem

Listado de 1500 libros gratis para estudiantes y apasionados por la Programación.

En internet hay muchos recursos para aprender a programar, la modalidad de estos por lo general son por medio de videos. Plataformas como youtube sean convertido en una muy importantes fuentes de esos recursos educativos, donde muchas personas no solo buscan apoyo para aprender a programar sino muchas otras cosas mas. Hace algunos meses tuve la oportunidad de compartirles una muy buena y amplia lista de libros gratuitos para aprender a programar, si deseas acceder a esta lo puedes hacer desde el siguiente enlace:  Importante lista de Libros gratis en formato PDF para programadores.  Les recuerdo que todos los libros son totalmente gratuitos. Si lo puedes notar los recursos son infinitos, por eso en este post quiero compartirte una nueva lista de aproximadamente 1500 libros gratis para estudiantes y apasionados por la Programación. Los libros están en formatos PDF, entres los libros encontramos aquellos que nos enseñan sobre: MYSQL, SQL SERVER, PHP, HTML, CSS, C#, C++, JAVASCRIPT

Este es el procedimiento para solicitar citas en el sistema de Gestión de Trámites Universitarios en Venezuela

El sistema otorga citas electrónicas para los procesos de certificación, acreditación, refrendo y autenticación de documentos de los egresados de instituciones universitarias oficiales y privadas El pasado mes de abril, el Ministerio del Poder Popular para Educación Universitaria, Ciencia y Tecnología (Mppeuct) activó el sistema automatizado de asignación de citas para la Gestión de Trámites Universitarios (GTU). Mediante este sistema, se otorga citas electrónicas para los procesos de certificación, acreditación, refrendo y autenticación de documentos de los egresados de instituciones universitarias oficiales y privadas, evitando las largas colas ofreciendo mayor comodidad a la población. Conozca el procedimiento para solicitar la cita electrónica: