The $vardir parameter in pupmod::master::sysconfig needs to be set to a directory that is under the master's vardir instead of the agent's vardir.
As it stands, it is possible for an upgrade of the puppetserver package to fail to be able to restart the service due to being unable to write to the temporary directory as noted in https://github.com/puppetlabs/puppetserver/blob/master/documentation/known_issues.markdown#tmp-directory-mounted-noexec
The following needs to happen:
Fix the parameter
Add documentation noting how to fix the issue manually (though encourage users to simply upgrade the pupmod module prior to upgrading the puppetserver package
Release a message to the mailing list with the discovery and links to the relevant documentation
The 1st (rescinded) PR for this uncovered design flaws in pupmod-simp-pupmod that would require a rewrite. The second PR is a targeted fix, that does not address the design flaws, and ASSUMES the parent directory of the 'puppet_settings.master.server_datadir' fact exists. The parent directory for Puppet 4 is layed down by the puppet-agent RPM.
Fixed bug in `puppet_settings` fact