¿Qué es run_once en ansible?

¿Qué es run_once en ansible?
El parámetro run_once ansible desvía el bucle perdido y obliga a una tarea específica que se ejecutará en el primer host en el lote. El resultado se puede aplicar a otros hosts activos en el libro de jugadas.

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.