Apply with_items on multiple tasks

As of today you can use with_items with include, so you'd need to split your playbook into two files:

- name: download and execute
  hosts: server1
  tasks:
  - include: subtasks.yml file={{item}}
    with_items:
    - "file1.sh"
    - "file2.sh"

and subtasks.yml:

- get_url: url="some-url/{{file}}" dest="/tmp/{{file}}"
- shell: /tmp/{{file}} >> somelog.txt

There was a request to make with_items applicable to block, but the Ansible team has said it will never be supported.


You have the possibility to define a yaml list in a variables file:

---
myfiles:
- "file1.sh"
- "file2.sh"
...

and then you can use

with_items: "{{ myfiles }}"

in the task.