Resolution: Won't Fix
Affects Version/s: PUP 3.6.2
Fix Version/s: None
https://github.com/rfkrocktk/docker-puppetmaster . Ubuntu 14.04 amd64, Docker container, using the Puppet APT repository with the latest Puppet version. No other bugs except for this, fully-functional master and agent.
I have a weird issue where the Puppet Master is generating a certificate called ".mydomain.com" (ie: ".$domain").
Looking into the logs, I see the following:
In the codebase it's located here: https://github.com/puppetlabs/puppet/blob/07a37ff92efac39e264f8279613594c95d650d63/lib/puppet/indirector/catalog/compiler.rb#L169
When I insert the following code in the set_server_facts method:
I see the following output in syslog:
As you can see, there's no IP address present there or FQDN in the facts for some reason.
Using Ruby on the same machine, I can get the FQDN and IP address facts easily:
The above code works without any problems just running "irb". The "facter" command-line tool also works without issue.
Since I though that it might be a permissions-based issue, as the Puppet Master is running as user "puppet," I tried running the same code as the "puppet" user and it works.
For some reason, a large number of facts simply aren't present in Facter at the time that this code runs.
I'm running the latest Passenger from Phusion's APT repository and the latest NGINX from there as well.
Ruby Version: 1.9.3p484
Passenger Version: 4.0.48
NGINX Version: 1.6.0
Puppet Version: 3.6.2
Facter Version: 2.1.0
The problem does not happen when I use the WEBrick server with "puppet master --no-daemonize --verbose", therefore I think the problem has to do with Passenger and the provided config.ru.
The problem is apparently caused by PATH not being defined when Passenger runs the Puppet Master. The fix is either to do this in config.ru:
Or to do the same thing inside of the Puppet Master as it starts up.