Uma alternativa é configurar algo via extlookup () que você pode ter uma exclusividade por máquina que não depende de um valor comum.
No nosso caso, fizemos coisas como essa com ferramentas semelhantes que precisavam de mais exclusividade do que o que um valor com hash com um segredo comum nos deu.
no site.pp
$extlookup_datadir = "/etc/puppet/manifests/extdata"
$extlookup_precedence = ["hostname/%{hostname}", "common"]
Em seguida, seus dados ext seriam semelhantes a:
/etc/puppet/manifests/extdata
/common.csv
/hostname
/foo.csv
Dentro de foo.csv, você colocaria algo como:
bacula_password,"J()*JF)jj0j20f9j02rj9<whatever>"
Então, no seu módulo bacula, você faria
$bacula_password = extlookup('bacula_password')
que você poderia então referenciar em seu modelo.
Quando o catálogo é avaliado, o nome do host "foo" seria encontrado primeiro na ext precedência e o valor de bacula_password seria obtido a partir daí.