Capítulo 10. Libros de jugadas complejos

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

En el capítulo anterior, vimos un libro de jugadas de Ansible completamente funcional para la implementación del CMS Mezzanine. Ese ejemplo utilizaba algunas funciones comunes de Ansible, pero no las cubría todas. Este capítulo aborda esas otras funciones, lo que lo convierte en una especie de bolsa de sorpresas.

Tratar con comandos que se comportan mal

Recuerda que en el Capítulo 7 evitamos invocar el comando personalizado createdb manage.py, mostrado en el Ejemplo 10-1, porque la llamada no era idempotente.

Ejemplo 10-1. Llamada a django manage.py createdb
- name: Initialize the database
  django_manage:
    command: createdb --noinput --nodata
    app_path: "{{ proj_path }}"
    virtualenv: "{{ venv_path }}"

Sorteamos este problema invocando varios comandos django manage.py que eran idempotentes, y que hacían el equivalente de createdb. Pero, ¿y si no tuviéramos un módulo que pudiera invocar comandos equivalentes? La respuesta es utilizar las cláusulas changed_when y failed_when para cambiar el modo en que Ansible detecta que una tarea ha cambiado de estado o ha fallado.

Vamos a asegurarnos de que entiendes la salida de este comando la primera y la segunda vez que se ejecuta.

Recuerda del Capítulo 5 que para capturar la salida de una tarea fallida, añades una cláusula register para guardar la salida en una variable y una cláusula ...

Get Ansible: Up and Running, 3ª Edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.