22 February 2015
Fixing puppet "Exiting; no certificate found and waitforcert is disabled" error
The fix was quite simple and a little embarrassing. Firstly I forgot to run my puppet master with root privileges which meant that it was unable to write incoming certificate requests to disk. That's the embarrassing part and after I looked at my shell prompt and noticed this issue fixing it was quite simple.
Firstly I got the puppet ssl path by running the command puppet agent --configprint ssldir
Then I removed that directory so that my agent no longer had any certificates or requests.
On my master side I cleaned the old certificate by running puppet cert clean --all (this would remove all my agent certificates but for now I have just the one so its quicker than tagging it).
I started my agent up with the command puppet agent --test which regenerated the certificate and sent the request to my puppet master. Because my puppet master was now running with root privileges (*cough*) it was able to write to its ssl directory and store the request.
I could then sign the request on my puppet master by running puppet cert sign --all
When running normally the puppet master will run as the puppet user so I'm not overly worried about running it as root in CLI while I debug it. Tip