Esta guía discutirá cómo puede usar el módulo ansible run_once para realizar un conjunto de operaciones.
Uso básico
El parámetro ansible run_once se aplica a una tarea específica que desea ejecutar en el primer host.
El siguiente ejemplo de libro de jugadas muestra cómo puede establecer el parámetro Run_once en un libro de jugadas.
---
- Anfitriones: todos
#…
tareas:
- Nombre: Ejecute este comando una vez
shell: comando
run_once: verdadero
El libro de jugadas de ejemplo anterior muestra la sintaxis general para implementar una tarea run_once.
Veamos algunos ejemplos y veamos varios casos de uso del parámetro Run_once.
Ejemplo 1
Implementaremos un libro de jugadas simple que descargue un archivo zip de una URL en nuestro primer ejemplo. Dado que no tiene sentido descargar repetidamente el archivo en cada host, podemos usar el parámetro run_once.
Tome el libro de jugadas de ejemplo que se muestra a continuación:
---
- Anfitriones: todos
gather_facts: si
tareas:
- Nombre: Descargar archivo solo una vez
run_once: verdadero
get_url:
URL: https: // file-examples-com.github.IO/Supars/2017/02/zip_10mb.cremallera
Dest: ~/zip_10mb.cremallera
- Nombre: Unarchive
Unarquivo:
src: ~/zip_10mb.cremallera
Dest: ~/zip_10mb
El libro de playbook de ejemplo descargará el archivo en el primer lote y luego lo desarchará en los hosts remotos.
Ejemplo 2
El siguiente libro de jugadas de muestra crea un archivo de un repositorio de git.
---
- Anfitriones: todos
gather_facts: si
tareas:
- Nombre: Crear archivo desde el repositorio
Git:
Repo: https: // github.com/muestras/repo.git
Dest:/Home/User/Repo
Archivo:/Home/User/Repo.cremallera
run_once: verdadero
Ejemplo 3
También podemos usar el parámetro run_once para crear una copia de seguridad y luego sincronizar la base de datos con los hosts remotos utilizando el protocolo RSYNC. Considere el libro de jugadas de ejemplo a continuación:
---
- Anfitriones: todos
gather_facts: si
hecho realidad
tareas:
- Nombre: Crea un archivo de copia de seguridad
archivo:
camino:
/var/log/
/Custom/All
Dest: /Backup /System0-Backup.bz2
Formato: BZ2
Eliminar: No
run_once: verdadero
- Nombre: Copia de seguridad de sincronización con RSYNC
sincronizar:
src: /backup /system0-backup.bz2
Dest: rsync: // Inventory_hostname/copias de seguridad
El libro de jugadas creará un archivo de copia de seguridad en el localhost y sincronizará los archivos con todos los hosts remotos.
Ejemplo 4
El libro de jugadas de ejemplo usa el parámetro run_once para enviar correo a todos los hosts.
---
- Anfitriones: todos
gather_facts: si
hecho realidad
tareas:
- Nombre: Crea un archivo de copia de seguridad
Local_action:
Módulo: correo
Asunto: "Correo de Ansible."
a: ubuntu@localhost
Cuerpo: "Actualizado a la nueva versión de Redis."
run_once: verdadero
El libro de jugadas envía correo a un usuario específico.
Conclusión
Esta guía le muestra cómo usar el parámetro run_once en Ansible para realizar una tarea en un solo host y aplicar los resultados a otros hosts.