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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access