J'utilise ansible pour créer un script de déploiement pour une API. Je souhaite que cela fonctionne séquentiellement à travers chaque hôte de mon fichier d'inventaire afin que je puisse déployer complètement sur une machine à la fois.
Avec le comportement de la boîte de sortie, chaque tâche de mon playbook est exécutée pour chaque hôte du fichier d'inventaire avant de passer à la tâche suivante.
Comment puis-je changer ce comportement pour exécuter toutes les tâches d'un hôte avant de démarrer sur l'hôte suivant? Idéalement, je voudrais avoir un seul playbook.
Merci
Regardez de plus près Rolling Updates :
Ce que vous cherchez c'est
- hosts: webservers
serial: 1
tasks:
- name: ...
En utilisant --forks = 1, spécifiez le nombre de processus parallèles à utiliser (par défaut = 5)
La stratégie permet de paralléliser la tâche par hôte. Voir https://docs.ansible.com/ansible/latest/user_guide/playbooks_strategies.html
Il existe 3 stratégies: linéaire (par défaut), série, gratuite (la plus rapide)
- hosts: all
strategy: free
tasks:
...