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)

Était-ce utile?

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top