Применить с элементами на нескольких задачах



Можно ли применить список элементов к нескольким задачам в Ansible playbook? Приведем пример:



- name: download and execute
hosts: server1
tasks:
- get_url: url="some-url/{{item}}" dest="/tmp/{{item}}"
with_items:
- "file1.sh"
- "file2.sh"
- shell: /tmp/{{item}} >> somelog.txt
with_items:
- "file1.sh"
- "file2.sh"


Есть ли какой-то синтаксис, чтобы избежать повторения списка элементов?

655   2  

2 ответов:

На сегодняшний день вы можете использовать with_items с include, поэтому вам нужно разделить свой playbook на два файла:

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

И subtasks.yml:

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

Есть запрос, Чтобы сделать with_items применимым к block, но он все еще не реализован.

У вас есть возможность определить список yaml в файле переменных:

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

А затем вы можете использовать

with_items: "{{ myfiles }}"

В задаче.

Comments

    Ничего не найдено.