Do que você está perguntando, parece que você quer apenas especificar o grupo vhosts como os hosts para executar uma função específica. Então, o seu manual deve começar assim:
---
- hosts: vhosts
name: Tasks run on vhosts
roles:
- { role: somerole }
Tenha em mente que você pode ter várias reproduções no seu manual, por isso é perfeitamente adequado fazer algo assim:
---
- hosts: all
name: Run roles for all servers
roles:
- { role: role1 }
- { role: role2 }
- etc.
- hosts: vhosts
name: Run roles specific to vhosts
roles:
- { role: vhost-role }
- hosts: all
name: Post-vhost roles for all servers
roles:
- { role: role3 }
- etc.
Se você tiver um único manual de jogo que deseja executar em diferentes grupos de host em momentos diferentes, poderá usar uma variável para a entrada de hosts:
---
- hosts: "{{ somevar }}"
name: Run roles against a user specified set of hosts
roles:
- { role: foo }
E então você invocaria este último de uma destas maneiras:
$ ansible-playbook playbook.yml --extra-vars "somevar=vhosts"
$ ansible-playbook playbook.yml --extra-vars "somevar=host1,host2"