Assumindo que você tenha configurado o PuppetDB para o seu cluster, você pode facilmente usar Puppetdbquery
puppet module install dalen-puppetdbquery
em seguida, no código do Puppet, pode consultar várias informações, por ex. com base em fatos, neste caso, todos os servidores Linux:
$ary = query_nodes('(kernel="Linux")')
o resultado será uma matriz de FQDN:
['foo.example.org', 'bar.example.org']
No exemplo acima, kernel
é apenas um fato do Puppet. Veja facter -y -p
para fatos em seu nó. Você poderia usar, por exemplo:
query_nodes('(processors.count=12 and os.architecture=amd64)')
A consulta pode ser muito mais complexa, considerando o seu exemplo e usando o CLI algo assim deveria fazer o trabalho:
puppet query nodes '(Firewall::Hole['mysql'])'
PuppetDB pode parecer bastante complexo, mas tentar navegar RAL levaria a muito mais complicado (e mais lenta).