Saltar al contenido

Ansible: ¿Cómo ejecutar un host de tareas por host?

Te traemos el hallazgo a esta traba, al menos eso esperamos. Si presentas inquietudes dínoslo, que con placer te responderemos

Solución:

Solución 1:

Si no desea ningún paralelismo al realizar los pasos en su libro de jugadas, establezca el nivel de bifurcación en 1:

ansible-playbook --forks=1 ...

También puede poner esto en su archivo cfg ansible:

[defaults]
forks=1

pero si lo desea de forma individual, use la opción de línea de comando anterior.

EDITAR:

serial: 1 hace algo completamente diferente: es como ejecutar el libro de jugadas para cada host por turno, esperando que se complete el libro de jugadas completo antes de pasar al próximo host. forks=1 significa ejecutar la primera tarea en un juego en un host antes de ejecutar la misma tarea en el próximo host, por lo que la primera tarea se ejecutará para cada host antes de tocar la siguiente tarea.

Entonces quieres forks=1 por una sola jugada; desafortunadamente eso no es posible actualmente.

Solución 2:

Puede ejecutar una sola tarea en serie (es decir, host por host) agregando throttle: 1 lo.

Ejemplo:

---

- hosts: all
  tasks:
      - name: wait in parallel
        command: sleep 20
      - name: wait  in serial
        command: sleep 30
        throttle: 1

Referencias:

  • Uso de palabras clave para controlar la ejecución
  • Palabras clave del libro de jugadas: Tareas

NÓTESE BIEN: throttle se introdujo en Ansible 2.9


Solución 3:

Hay una solución para este problema: se puede pasar una lista de hosts (o un grupo) a with_itemsy luego usar delegate_to con esta lista. De esta manera, la tarea se ejecutará host por host.

Por ejemplo:

- name: start and enable rabbitmq (run task host by host)
  service:
    name: "rabbitmq-server"
    state: "started"
    enabled: true
  delegate_to: " item "
  with_items: " groups['rabbitmq-cluster'] "
  run_once: true

Puedes reafirmar nuestra labor fijando un comentario y dejando una puntuación te estamos agradecidos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *