Combiner with_fileglob avec une autre liste dans Ansible tablettes playbook
-
21-12-2019 - |
Question
J'ai donc une Ansible playbook et je vais essayer d'appeler une commande pour chaque élément dans une liste, mais aussi exécuter cette commande sur une fileglob.Il y a un "with_nested" dans Ansible, et il peut prendre les noms de variables, mais si j'ajoute un "with_fileglob," " il insère "with_fileglob" que le nom de fichier au lieu de réellement faire une boule.
vars:
repo_versions:
- version: trusty
distribution: Ubuntu
- version: wheezy
distribution: Debian
...
- command: reprepro -b /var/www/html includedeb {{ item[0].version }} {{ item[1] }}
with_nested:
- repo_versions
with_fileglob: /home/repoman/debs/*.deb
when: debs_available.stat.exists == True
J'ai essayé plusieurs combinaisons différentes et je n'arrive pas à l'obtenir pour traiter la commande dans une double boucle for (pour chaque .version pour chaque .fichier deb)
La solution
Ce doit être ce que vous essayez d'accomplir.
J'ai utilisé le shell
module d'enregistrer la sortie de la fileglob, et puis la stdout_lines
propriété de la inscrit variable dans la boucle.J'ai converti la tâche de mon test à votre réel des commandes et des chemins, de sorte que vous pourriez avoir besoin de vérifier:
vars:
repo_versions:
- version: trusty
distribution: Ubuntu
- version: wheezy
distribution: Debian
tasks:
- shell: ls -1 /home/repoman/debs/*.deb
register: repo_list
- command: reprepro -b /var/www/html includedeb {{ item[0].version }} {{ item[1] }}
with_nested:
- repo_versions
- repo_list.stdout_lines