Мне нужно создать определенное количество файлов модулей systemd на основе имени и включенной переменной с количеством файлов для создания, например:
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
Он работает с вложенным циклом, используя функцию диапазона, но я не понимаю, как использовать переменную цикла (item.1.workers) в параметрах диапазона().
- hosts: localhost
vars:
apps:
- name: app-name
workers: 3
- name: script-name
workers: 5
connection: local
tasks:
- name: test
debug:
msg: "{{ item.1.name }}@{{ item.0 }}.service"
loop: "{{ range(1, 3) | product(apps) | list }}"

Давайте создадим списки рабочие в первой задаче и зациклим с подэлементы во второй задаче.
- set_fact:
apps1: "{{ apps1|default([]) +
[{'name': item.name,
'workers': range(1, item.workers + 1)|list}] }}"
loop: "{{ apps }}"
- debug:
msg: "{{ item.0.name }}@{{ item.1 }}.service"
loop: "{{ apps1|subelements('workers') }}"
дает
msg: [email protected]
msg: [email protected]
msg: [email protected]
msg: [email protected]
msg: [email protected]
msg: [email protected]
msg: [email protected]
msg: [email protected]