Uma opção seria usar o filtro de diferenças . Abaixo está um exemplo de como usá-lo.
> cat test-difference-01.yml
- hosts: localhost
gather_facts: no
vars:
web_servers:
- web-server-01
- web-server-02
- web-server-09
inventory_hostname:
- web-server-02
tasks:
- set_fact:
delegate_to_hosts: "{{ web_servers | difference(inventory_hostname) }}"
- debug:
msg : "{{ delegate_to_hosts }}"
.
> ansible-playbook test-difference-01.yml | grep -A 3 msg
"msg": [
"web-server-01",
"web-server-09"
]