Sobes.tech
Junior — Middle

Comment peut-on moderniser l'exécution des tâches dans Ansible pour les lancer simultanément sur plusieurs hôtes au lieu de leur exécution séquentielle?

sobes.tech IA

Réponse de l'IA

Dans Ansible, par défaut, les tâches s'exécutent en parallèle sur plusieurs hôtes, mais à l'intérieur d'un même hôte, elles s'exécutent séquentiellement. Si vous souhaitez lancer plusieurs tâches simultanément sur un seul hôte, vous pouvez utiliser le module async et le paramètre poll.

Exemple de lancement asynchrone d'une tâche :

- name: Lancer une tâche longue de manière asynchrone
  command: /path/to/long_task.sh
  async: 3600       # durée maximale d'exécution en secondes
  poll: 0           # ne pas attendre la fin de la tâche

Cela permettra de lancer la tâche et de passer immédiatement à la suivante, sans attendre sa fin.

Si vous parlez d'exécuter des tâches en parallèle sur différents hôtes, c'est le comportement standard d'Ansible, que vous pouvez configurer via le paramètre forks dans la configuration, en augmentant le nombre de connexions simultanées.

Exemple de configuration du nombre de connexions parallèles :

[defaults]
forks = 20

Ainsi, pour lancer des tâches simultanément sur plusieurs hôtes, augmentez forks, et pour exécuter des tâches en parallèle sur un seul hôte, utilisez async et poll.