I have a small cluster consisting of a fileserver and six nodes. The six nodes need to be 100% identical, so I'm using puppet to manage them. There's a few reasons why I want to be able to use exported resources, so I use storeconfigs and a postgres database.The puppet master runs in a VM on the file server.This all used to run fine, using (on the puppet master) Debian 7 Wheezy and its puppet 2.7.Recently, I added a new node which runs Debian 8 Jessie, which ships with puppet 3.7. Since you can't run an older puppet master with a newer client, I upgraded the puppet master to jessie. This introduced a few compatibility issues in my puppet recipes. For the most part, nothing I can't handle, but there's one issue that I can't find a solution to:err: Could not retrieve catalog from remote server: Error 400 on SERVER: could not obtain a database connection within 5.000 seconds (waited 5.000 seconds)This happens after the master has been running for a short while and has served about 5 catalogs or so. Before that, it seems to work fine.So the file server isn't the fastest machine ever. This isn't something I care about much (if the puppet run takes 30 seconds rather than 10, I'm not going to cry). However, if puppet gives up before it can compile a catalog, that's not very helpful. Yes, I could increase the resources to the VM, but I'd rather not do that (it can cope with what little load there is right now, it's just a little slow).I would like to increase this timeout, but I can't seem to figure out how.Where is this timeout defined/configured?
increasing puppet storeconfigs timeout
debian;puppet
I ended up replacing the standalone puppetmaster with an apache mod_passenger setup. The problem is not reproducible in that configuration.In Debian Jessie, that's done by running apt install puppetmaster-passenger; systemctl stop puppetmaster; systemctl restart apache2. Everything else happens automatically thanks to the wonderful packaging of puppet.