web-dev-qa-db-fra.com

Ansible - Comment exécuter séquentiellement le playbook pour chaque hôte

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

38
Lynn

Regardez de plus près Rolling Updates :

Ce que vous cherchez c'est

- hosts: webservers
  serial: 1
  tasks:
    - name: ...
73
ProfHase85

En utilisant --forks = 1, spécifiez le nombre de processus parallèles à utiliser (par défaut = 5)

2
jobin

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:
    ...
0
MUY Belgium