Ansible looping through files

14,056

Solution 1

The equivalent is

    loop: "{{ lookup('fileglob', 'plugins/*', wantlist=True) }}"

Here is the doc.

Solution 2

From the current Ansible loops doc:

Any with_* statement that requires using lookup within a loop should not be converted to use the loop keyword. For example, instead of doing:

loop: "{{ lookup('fileglob', '*.txt', wantlist=True) }}"

it’s cleaner to keep:

with_fileglob: '*.txt'

Share:
14,056
Buzut
Author by

Buzut

Internaute de l'Internet Passionate about all things digital I make things with #JavaScript #NodeJS #vueJS & #Linux

Updated on July 27, 2022

Comments

  • Buzut
    Buzut almost 2 years

    Prior to Ansible 2.5, the syntax for loops used to be with_x. Starting at 2.5, loop is favored and with_x basically disappeared from the docs.

    Still, the docs mention exemples of how to replace with_x with loop. But I'm clueless as to how we're now supposed to loop through a directory of files.

    Let's say I need to upload all the files within a given dir, I used to use with_fileglob.

    - name: Install local checks
      copy:
        src: "{{ item }}"
        dest: /etc/sensu/plugins/
        owner: sensu
        group: sensu
        mode: 0744
      with_fileglob:
        - plugins/*
    

    So what's the modern equivalent? Is it even possible? I know I still can use with_fileglob but as I'm writing new roles, I'd better have them future-proof.

  • Buzut
    Buzut over 5 years
    It works perfectly! I couldn't find this in the docs and thought it had been removed as every with_x alternative is presented but this one. Thank you!