facter not visible
I define a fact called "openv" on my Puppet server. It provisions a VM server I use to create temporary VMs. This fact is visible within Puppet on the VM server. The Puppet configuration I inherited cannot pass the fact to the temporary VMs without significant changes. However, when the VM server creates a VM, it passes and runs a script on the VM to prepare it for provisioning. I pass the fact value to the script. When the script is run on the VM, it defines a variable in /etc/environment (CentOS 7) called FACTER_OPENV. The script then installs and starts Puppet on the VM. At that point, the Puppet instance on the VM begins to provision the VM using manifests from the Puppet server.
On the VM being provisioned, I can log into the VM and run "facter" from the command line and see the "openv" fact. However, the manifests being processed on the VM cannot, at least not using $openv as I do on the Puppet and VM servers. I have a manifest that copies a particular Yum repo definition onto a host based on the value of the "openv" fact. It works on the servers when referenced as $openv, but not on the temporary VMs. I've tried restarting Puppet thinking it needed to load the facts, but using $openv still does not resolve to value.
Any ideas as to why a fact is visible to facter, but not to Puppet, on the same host?