GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Ansible Playbook:Cómo crear y configurar Playbooks

Introducción

Ansible es una herramienta de Infraestructura como código que le permite administrar y monitorear una cantidad de servidores remotos mediante un único nodo de control.

Con Ansible, puede administrar servidores remotos mediante libros de jugadas. Estos libros de jugadas transmiten instrucciones a servidores remotos y les permiten ejecutar tareas predefinidas.

En este tutorial, repasaremos qué son los playbooks de Ansible, cómo funcionan y cómo puede crearlos y ejecutarlos.

Requisitos previos

  • Un sistema Linux (estamos usando Ubuntu 20.04)
  • Acceso a la línea de comandos/ventana de terminal
  • Ansible instalado y configurado

¿Qué es un libro de jugadas de Ansible?

Un playbook de Ansible es una lista de instrucciones para trabajos que ejecutan automáticamente equipos remotos en una red de Ansible.

Un libro de jugadas de Ansible consta de jugadas. Las jugadas son un conjunto orquestado de tareas que se completan una vez que se ejecuta un libro de jugadas. Puede agregar varias jugadas a un libro de jugadas.

Los juegos utilizan módulos para definir qué cambios deben realizarse para completar una tarea. Cada módulo proporciona un marco para una determinada categoría de trabajos y se puede personalizar usando argumentos y variables .

Los playbooks de Ansible se guardan como archivos .yaml, lo que los hace flexibles y fáciles de usar.

Los libros de jugadas se utilizan principalmente para:

  • Declaración de configuraciones.
  • Automatización de ciertas tareas repetibles que tomarían mucho tiempo hacerlas manualmente.
  • Lanzar tareas de forma síncrona o asíncrona.

Variables del libro de estrategias de Ansible

Los playbooks de Ansible usan variables para brindar flexibilidad y facilidad de uso. Las variables pueden ser integradas (como información del sistema) o definido por el usuario .

En un libro de jugadas de Ansible, las variables se definen mediante el vars palabra clave:

En el ejemplo anterior, definimos el greeting variable con el valor asignado de Hello World! .

Para acceder al valor, ponga el nombre de la variable greeting entre llaves dobles:

Una vez ejecutado, el libro de jugadas imprime el mensaje Hello World!

Además de las variables con un solo valor, existen otros tipos de variables de Ansible. Uso de variables con matrices , asigne múltiples valores a una variable con la siguiente sintaxis:

vars:
  array_name:
    - value1
    - value2
    …
    - valueN

Acceda a un valor específico usando {{ array_name[value number] }} , por ejemplo:

Variables con diccionarios combine varias matrices de valores en una sola variable:

vars:
  array_name:
    dictionary_name1:
      item1: value1
      item2: value2
    dictionary_name2:
      item1: value1
      item2: value2

Finalmente, variables especiales están predefinidos por Ansible y no pueden ser configurados por los usuarios. Use el siguiente comando para obtener una lista de variables especiales:

ansible -m setup hostname

¿Cómo escribir un libro de jugadas de Ansible?

Cree un libro de jugadas de Ansible con cualquier editor de texto disponible en su sistema. Por ejemplo, cree un libro de jugadas con Nano:

sudo nano /path/to/playbook/directory/playbook_name.yaml

Los playbooks de Ansible siguen las reglas básicas de sintaxis de YAML.

Un libro de jugadas comienza con tres n-guiones (--- ), seguido del nombre del libro de jugadas, el nombre del grupo de hosts remotos que ejecuta el libro de jugadas y parámetros adicionales como become (ejecutar el libro de jugadas como administrador).

La siguiente sección contiene todas las variables definidas por el usuario. Comienza con vars etiqueta en el mismo nivel de sangría que la sección anterior, seguida de una lista de variables en la siguiente sangría.

Finalmente, la lista de tareas comienza con tasks etiqueta, con el nivel de sangría dependiendo del tipo de tarea y los parámetros utilizados.

La sintaxis YAML le permite usar tres puntos ( ) para finalizar el libro de jugadas. Aunque la mayoría de los libros de jugadas terminan de esta manera, no es necesario que el libro de jugadas funcione correctamente.

Sintaxis del libro de jugadas de Ansible

Algunos elementos importantes de la sintaxis YAML a tener en cuenta al escribir playbooks de Ansible:

  • Al redactar listas, utilice un espacio entre el guión (- ) y la entrada de la lista.
  • Al usar la key: value formulario, los dos puntos deben ir seguidos de un espacio.
  • Los valores booleanos pueden usar ambos yes y no , así como true y false .
  • Use espacio seguido de # para indicar un comentario.

Ejemplo de manual de estrategias de Ansible

Para este ejemplo, crearemos un libro de jugadas en la carpeta de instalación de Ansible:

sudo nano /etc/ansible/example_playbook.yaml

Este libro de jugadas contiene los siguientes elementos:

  • --- :Señala el inicio del libro de jugadas.
  • name :define el nombre del libro de jugadas de Ansible.
  • hosts :define qué hosts ejecutan el libro de jugadas. En el ejemplo anterior, el libro de jugadas se ejecuta en todos los hosts incluidos en el archivo de inventario.
  • become :indica al host remoto que ejecute el libro de jugadas como administrador. El uso de esta etiqueta requiere que ingrese la contraseña de administrador para el host remoto al ejecutar el libro de jugadas.
  • vars :define variables; en nuestro caso, una variable llamada greeting con el valor Hello World! .
  • tasks :la lista de tareas que debe ejecutar el libro de jugadas. En el ejemplo anterior, la primera tarea crea un directorio llamado example_playbook en el host remoto. La segunda tarea crea un nuevo archivo de texto en ese directorio y coloca el valor del greeting variable como el contenido.
  • ... :Señala el final del libro de jugadas.

¿Cómo se ejecuta un libro de jugadas?

Los playbooks de Ansible se ejecutan en orden, de arriba a abajo. Esto es cierto tanto para las jugadas individuales como para las tareas enumeradas en esas jugadas.

En el ejemplo anterior, el libro de jugadas realiza las siguientes acciones, en orden:

  1. Define una lista de variables.
  2. Crea una nueva carpeta en el host remoto.
  3. Crea un archivo de texto en la nueva carpeta.
  4. Agrega el valor de la variable como contenido del archivo.

Cómo ejecutar un libro de jugadas de Ansible

Para ejecutar un libro de jugadas de Ansible, utilice:

ansible-playbook /path/to/playbook/directory/playbook_name.yaml

A los efectos de este artículo, utilizaremos example_playbook.yaml con -K argumento, que nos permite ingresar la contraseña de usuario raíz para el host remoto y ejecutar el libro de jugadas como administrador:

ansible-playbook /etc/ansible/example_playbook.yaml -K

Cómo verificar libros de jugadas

Ejecute un libro de jugadas en modo de verificación usando el --check bandera para verificarlo. Esto le permite ver los cambios que haría su libro de jugadas, sin realmente hacerlos:

ansible-playbook /path/to/playbook/directory/playbook_name.yaml --check

Para obtener una descripción general más detallada de los posibles cambios, utilice la combinación de --check y --diff banderas:

ansible-playbook /path/to/playbook/directory/playbook_name.yaml --check --diff

Consejos útiles del manual de estrategias de Ansible

Hay varias formas de hacer que los playbooks de Ansible sean más fáciles de leer y usar:

Nombrar siempre jugadas y tareas

Usa el name palabra clave para definir nombres para jugadas y tareas. Agregar nombres cortos y sencillos hace que sea mucho más fácil saber qué hace cada jugada o tarea de un vistazo.

Usar comentarios

Asegúrese de agregar muchos comentarios, especialmente al definir variables y tareas.

Los comentarios detallados ayudan a que el libro de jugadas sea aún más claro y fácil de entender. También ayudan a cualquier otra persona que use sus libros de jugadas.

Dar formato al Libro de jugadas para facilitar su uso

Si bien debe seguir las reglas de sangría para que el libro de jugadas funcione, aún puede usar espacios en blanco (como líneas en blanco entre tareas) para hacer que un libro de jugadas sea más fácil de leer.


Ubuntu
  1. Cómo instalar y configurar Ansible en Ubuntu 18.04 LTS

  2. Cómo crear un libro de jugadas de Ansible

  3. Cómo instalar y configurar Ansible en Fedora 35

  4. Cómo instalar y configurar Ansible en Rocky Linux/CentOS 8

  5. Cómo usar Ansible para instalar y configurar Redis 6 en Ubuntu 20.04

Cómo crear playbooks de Ansible para la automatización de TI

Cómo crear y configurar un punto de acceso Wi-Fi en Ubuntu 17.10

Cómo definir y usar controladores en Ansible Playbooks

Cómo crear y ejecutar un archivo de libro de jugadas de Ansible

Roles de Ansible y cómo usarlos en Playbooks

Cómo instalar y configurar Ansible en Ubuntu