All of our servers have attributes that we store in a database and I'd like to make these attributes available locally on each server for use by Puppet. I don't want facter to query the database each time facter is run so using a facter executable script is probably not what I'm looking for.
I'm wondering if I should create a Puppet exec resource in my base module (that is used by all systems) that will query the database and store the values in /etc/puppetlabs/facter/facts.d/vars.yaml or something.
Does this sound like a reasonable approach?