Je suis dans une situation où je veux faire une boucle sur une liste (with_items) et exécuter une commande. Cependant, l'élément suivant ne peut pas démarrer à moins que le premier ne soit terminé sur tous les hôtes. La quantité d'objets que je vais boucler sera énorme. Cependant, il ne devrait pas y avoir de dérive dans les hôtes quant à l'objet utilisé. Aucun hôte ne doit démarrer item2 à moins que l'élément 1 ne soit terminé dans l'ensemble du pool d'hôtes.Ansible séquentiel avec_héléments sur les hôtes
Pour créer une preuve de concept que j'espère obtenir les résultats suivants
- name: proof of concept
command: bash -c /home/user/my_test_script.sh
with_items:
- item_1
- item_2
....
- item_n
Où my_test_script.sh a un sommeil différent (x) sur chaque hôte simulant que certains peuvent être plus lents dans l'exécution d'un travail.
J'ai déjà regardé, wait_for, wait_until, etc .. mais je n'ai pas encore trouvé de solution pour exécuter une tâche parallèle (with_items), qui fonctionne (pour chaque élément de la liste) 'sync' (dans le temps pas rsync) pour un certain nombre d'éléments donnés.
Toute aide serait appréciée.
Est-ce possible à partir d'un rôle (qui est ma situation actuelle) – Benjamin
Bien sûr, il suffit de mettre la tâche de fond dans votre rôle n » est pas t 'test_script'. – kfreezy