a resposta mais óbvia - use variáveis complexas (dicionários) para manter seus valores e, em seguida, passe a variável inteira:
- layouts:
- layout1:
vhost: host1.com
db: customdb
- layout2:
vhost: other.com
use-os para passar para funções:
- hosts: dbservers
roles:
- { role: database, layout: layouts.layout1 }
- { role: database, layout: layouts.layout2 }
- hosts: webservers
roles:
- { role: webserver, layout: layouts.layout1 }
- { role: webserver, layout: layouts.layout2 }
Eu fiz isso com sucesso no passado. Para preencher os layouts, você pode usar várias técnicas: combinando "group_vars / all" com "vars_files" com "host_vars" etc.