About | FAQ | Help
Ask Your Question

configuration of multiple puppet masters

asked 2018-02-27 23:22:44 -0500

sreepadh gravatar image

updated 2018-03-01 22:44:13 -0500

Is there a simple step by step guide to set up Puppet with Multiple Masters with Open Source? Any help is appreciated. I am not able to understand the process which is mentioned in puppet labs...!!!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2018-03-04 03:28:08 -0500

Hypnoz gravatar image

updated 2018-03-04 19:13:00 -0500

I just have been working on setting up puppet version 5 with multiple masters, and I made some notes so I'll share what I did.

I changed my hostnames to "hostname.dc.example.com" but update things according to your environment. Here's the basic types of hosts you'll want:

I'm assuming you have the puppet5 repo added to /etc/yum.repos.d/ or whatever your OS is. These commands are meant for Centos 7 but probably you can adjust them for your OS.


Initial install

yum -y install puppet puppetserver

edit: /etc/sysconfig/puppetserver with correct java memory

edit: /etc/puppetlabs/puppet/autosign.conf


edit: /etc/puppetlabs/puppet/puppet.conf

This is where you put the DNS name that points to the load balancer. So maybe you want to use something like "qapuppet5vip001.dc.example.com". That won't match the SSL cert on any of your machines, so you need to use the "dns_alt_names" option so the SSL cert also is valid for that "vip" url.

  dns_alt_names = puppet,qapuppet5vip001.dc.example.com

  vardir = /opt/puppetlabs/server/data/puppetserver
  logdir = /var/log/puppetlabs/puppetserver
  rundir = /var/run/puppetlabs/puppetserver
  pidfile = /var/run/puppetlabs/puppetserver/puppetserver.pid
  codedir = /etc/puppetlabs/code
  confdir = /etc/puppetlabs/puppet
  # We'll leave auto sign disabled for now until setup is finished
  #autosign = $confdir/autosign.conf

  reports               = puppetdb

  environmentpath       = $codedir/environments

  # Hiera Config
  hiera_config          = $confdir/hiera.yaml

  # PuppetDB Config
  storeconfigs          = true
  storeconfigs_backend  = puppetdb

  # If you use an external node classifier, set these up
  #node_terminus         = exec
  #external_nodes        = $codedir/environments/production/bin/enc.rb

  # Default environment cache is 3 minutes. Lets set 0 to not cache at all
  environment_timeout   = 0

  report      = true
  splay       = true
  server      = qapuppet5ca001.dc.example.com
  ca_server   = qapuppet5ca001.dc.example.com
  classfile   = $vardir/classes.txt
  localconfig = $vardir/localconfig
  environment = production

edit: /etc/puppetlabs/code/environments/production/manifests/site.pp

# Sets default file permissions.
# Done just for completeness
File {
  owner => 'root',
  group => 'root',
  mode  => '0644',

stage { 'pre' :
  before => Stage['main'],

# Used to classify all systems puppet manages
node default {
  notify{ "I am puppet master $servername": }
#  include role

Start puppet server

systemctl start puppetserver

Check the logs in /var/log/puppetlabs/puppetserver/ in case there's some issue. Also check that certs were created in /etc/puppetlabs/puppet/ssl/



note1: Repeat this step for all puppet masters ... (more)

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2018-02-27 23:22:44 -0500

Seen: 242 times

Last updated: Mar 04