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

Sailfish OS certificado como alternativa a Android en Rusia

Los finlandeses de  Jolla  están de enhorabuena, especialmente si recordamos que no hace mucho estaban casi en la bancarrota, tras embarcarse en una aventura algo arriesgada para la fabricación de tablets. Ahora la vida les sonríe: las autoridades rusas  han certificado  el  sistema operativo Sailfish OS  para su uso por parte del gobierno y corporaciones del país. Se trata de un sistema con base open source ( Linux ), pero con una  capa privativa  presente en algunos de sus componentes como puede ser la interfaz o determinadas aplicaciones. La gran ventaja de Sailfish respecto a otros competidores en el mercado del smartphone –como el ya desaparecido  Firefox OS  o  Ubuntu –, es su  compatibilidad con las aplicaciones de Android. Las intenciones de Rusia es  reducir el uso de sistemas operativos extranjeros  (Android, iOS) en móviles del 95% actual  a la mitad en 2025 . Disminuir la  dependen...

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

Cómo utilizar Google Cloud Print para usar una impresora desde cualquier ordenador, móvil o tablet

Google Cloud Print  es de los productos menos populares de Google, pero es de los mejores. Básicamente  conecta tu impresora a la Web para que puedas imprimir en ella desde cualquiera de tus ordenadores o dispositivos móviles  (a través del ordenador si es una impresora convencional), aunque estés  en el otro extremo del mundo . Y  también permite compartir la impresora con otros usuarios , para que puedan imprimir en ella aunque también estén  en el otro extremo del mundo . En ambos casos será posible imprimir a través de Google Cloud Print desde el navegador Chrome y desde aplicaciones de Google que tengan la opción de imprimir, caso de las aplicaciones de Gmail (nativa o web) y Google Docs / Google Drive 1 . Google Cloud Print también está disponible desde  aplicaciones compatibles . Para activar Google Cloud Print, Inicia (instala primero si es necesario) el  navegador web Chrome Abre las preferencias. Al final de la pá...