Это зависит от структуры данных. Например, playbook сделает работу
- hosts: server1,server2,server3
vars:
batch001:
- command: "foo"
hosts: [server1]
- command: "bar"
hosts: [server1, server2]
- command: "baz"
hosts: [server1, server2, server3]
tasks:
- command: "{{ item.command }}"
loop: "{{ batch001 }}"
when: inventory_hostname in item.hosts
Следующим вариантом будет создание словаря серверов с вложенными списками команд. Например,
- hosts: server1,server2,server3
vars:
batch002:
server1:
commands: ["foo", "bar", "baz"]
server2:
commands: ["foo", "bar"]
server3:
commands: ["foo"]
tasks:
- command: "{{ item }}"
loop: "{{ batch002[inventory_hostname]['commands'] }}"