Tools/Ansible/Gestion des Boucles
Boucles et plug-in de recherche
L'utilisation de boucles pour itérer sur des tâches peut vous aider à simplifier vos playbooks Ansible. Le mot-clé loop effectue une boucle sur une liste d'éléments à plat. Lorsqu'il est utilisé en association avec des plug-ins de recherche, vous pouvez créer des données plus complexes dans vos listes pour vos boucles.
Le mot-clé loop
a été introduit dans Ansible 2.5. Avant cela, l'itération de la tâche a été mise en oeuvre à l'aide de mots-clés contenant en premier with_, suivis du nom d'un plug-in de recherche.
L'équivalent de loop dans cette syntaxe est with_list
et est conçu pour l'itération sur une liste plate simple.
Pour les listes simples, loop
est la meilleure syntaxe à utiliser.
À titre d'exemple, les trois syntaxes suivantes présentent les mêmes résultats. La première est celle qui est préférée :
- name: using loop
debug:
msg: "{{ item }}"
loop: "{{ mylist }}"
- name: using with_list
debug:
msg: "{{ item }}"
with_list: "{{ mylist }}"
- name: using lookup plugin
debug:
msg: "{{ item }}"
loop: "{{ lookup('list', mylist) }}"
Vous pouvez refactoriser une tâche d'itération de type with_*
pour utiliser le mot-clé loop
, en utilisant une combinaison appropriée de plug-ins de recherche et de filtres pour correspondre à la fonctionnalité.
L'utilisation du mot-clé loop
à la place de boucles de type with_*
présente les avantages suivants :
- Il n'est pas nécessaire de mémoriser ou de trouver un mot-clé de type
with_*
pour votre scénario d'itération. À la place, utilisez des plug-ins et des filtres pour adapter une tâche de mot-cléloop
à votre cas d'utilisation. - Concentrez-vous sur l'apprentissage des plug-ins et des filtres disponibles dans Ansible, dont la capacité d'application est plus étendue que la simple itération.
- Vous disposez d'un accès en ligne de commande à la documentation du plug-in de recherche, à l'aide de la commande
ansible-doc -t lookup
. Cela vous permet de découvrir les plug-ins de recherche et de concevoir des scénarios d'itération personnalisés à l'aide de ces derniers.
|