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

Selfies en 3D llegan a Venezuela y hasta las podrás imprimir en plástico

La empresa 3DUP lanzó al mercado venezolano las líneas de impresoras 3D,  Cube3  y CubePro  de 3D Systems Corporation, a través de las cuales se podrán imprimir modelos, diseños o escaneos en 3D. De igual manera, también está disponible el servicio de selfie3D y el servicio de modelado 3D. La impresora Cube3 tiene dos cabezales de impresión y es única en su clase, posee una amplia combinación de materiales ABS, PLA y una variedad de 18 colores. Es el equipo más fácil de utilizar en el mercado y tiene un software de construcción apto para Windows y Mac; además cuenta con conexión wifi. La nueva CubePro, impresora 3D de calidad profesional ofrece el mayor volumen de impresión entre las impresoras de su clase, sus versiones cuentan con uno, dos o tres cabezales de impresión. Además, posee una amplia combinación de materiales ABS, PLA y Nylon con una variedad de 25 colores, cuenta con una cámara calefaccionada y cerrada para optimizar los trabajos de impresión 3D. P...

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...

CÓMO RECUPERAR UN ARCHIVO DE VÍDEO EN LINUX

Paso 1:   Com probam os  que existe información en el archivo Parece lógico, pero por si acaso, lo incluyo como primer paso. Como veis, en mi caso el archivo ocupa 271,1MB (lo que significa que  la información está ahí, pero no podemos verla porque se ha guardado de forma incorrecta ). A continuación,  instalamos  Untrunc . Os indico  cómo hacerlo en los próximos pasos , es muy sencillo. Las instrucciones detalladas se encuentran en el  Readme  del  repositorio de Ponchio . Leedlas si usáis otro SO que no sea Ubuntu. Paso 2: Instalamos una serie de librerías  Libav  con el comando: Terminal Shell 1 sudo apt - get install libavformat - dev libavcodec - dev libavutil - dev Si usas otro SO que no sea Ubuntu (o una versión antigua de este), quizás debas instalar manualmente Libav. Paso 3: Descargamos el código fuente de  Untrunc , desde Github: Terminal ...