Our puppetdb infrastructure is realized by having multiple puppetdb servers sharing the same postgresql database. In front of the puppetdb servers we have a load balancer to distribute the load among them.
Installing a new puppetdb server
These are the steps required to install a new puppetdb server:
- Install a new node with the role "role::base"
- Make sure to add the puppetdb hostname in the nodes hiera file under the key "profile::puppet::altnames". Then regenerate the puppet client certificates for this node, so that the node have a certificate valid for both its hostname and the common puppetdb hostname.
- Install the role "role::puppet::db"
- Wait for, or trigger, a puppet run on the loadbalancers, which will include the new server.