On CentOS6 the plugin sync sets file mode for external fact script (/var/opt/lib/pe-puppet/facts.d/myfacts.sh) to 0644, and then agent (or standalone puppet) reports that the file "parsed but returned an empty data set":
If I "chmod a+x" the script then the fact parses successfully:
[root@foo ~]# chmod a+x /var/opt/lib/pe-puppet/facts.d/myfacts.sh
[root@foo ~]# puppet apply -e 'notice($mypkg_installed)' --environment development
Notice: Scope(Class[main]): true
Notice: Compiled catalog for foo.local in environment development in 0.01 seconds
Notice: Finished catalog run in 0.14 seconds
[root@foo ~]#
But the agent will always reset the file mode back to 0644.
If anyone has suggestions on either preventing Puppet agent from reverting the fact script's permissions to 0644, OR getting the parser to resolve the facts without making the script executable, would be much appreciated. Thanks.