This is possible, and it is not documented well. Different parts of getting 
it to work are in different sections of the online documentation. I got 
this working recently with these conditions:

   - One puppet server is the CA master as well as a normal compile master
   - Puppet masters exist at other data centers and are compile masters for 
   agents at their sites, with all other masters/agents using the CA master 
   for SSL
   - Each puppet master has a cron to regularly do a 'git pull' of the 
   puppet environment git repos to /etc/puppetlabs/code/environments so all 
   agents use the same code. Recommendation: GitLab CE (free) is amazing.
   - A separate server hosts puppetdb, and all masters send agent reports 
   to it. To make this work, all agents/masters need to use the same CA

On the first puppetmaster that will also be the CA master:

   - Install puppetserver
   - In its /etc/puppetlabs/puppet/puppet.conf [main] section:
      - server = <its FQDN>
      - ca_server = <its FQDN>
   - Startup puppetserver on it
   - Put your code into /etc/puppetlabs/code/environments
   - Configure it to be an agent to itself and ensure it successfully runs 
   before proceeding

On other masters:

   - Install puppetserver
   - Setup the git repos into /etc/puppetlabs/code/environments as you did 
   for the CA master
   - Modify /etc/puppetlabs/puppetserver/bootstrap.cfg and follow the 
   comment's instruction on disabling the CA service
   - Modify /etc/puppetlabs/puppetserver/conf.d/webserver.conf per 
   https://docs.puppet.com/puppetserver/2.2/external_ca_configuration.html
   - In its /etc/puppetlabs/puppet/puppet.conf [main] section:
      - server = <its FQDN>
      - ca_server = <FQDN of CA master>
   - In its [agent] section, make its 'server' be the CA master and set the 
   correct environment
   - Run the agent successfully (against the CA master), then make 'server' 
   be its own FQDN, then run it successfully again

Configure all masters to send reports to puppetdb:

   - Under [master], add:
   - 
   
   storeconfigs = true
   storeconfigs_backend = puppetdb
   reports = puppetdb
   
   

On agents:

   - In the [main] section, have 'ca_server = <FQDN of CA master>'
   - In the [agent] section, have 'server = <FQDN of the master for its 
   site>'
   - Send agent reports, in the [agent] section, add: report = true


On the separate PuppetDB server:

   - Configure it as an agent and successfully run the puppet agent
   - Install the excellent puppetlabs-puppetdb module from puppetforge into 
   your environment(s)
   - In your site.pp node section, configure your masters and puppetdb 
   server as such with the module:
   - 
   
   # Puppet masters send reports to puppetdb server
       if $::hostname =~ /(camaster|master1|master2|master3)/ {
         class { 'puppetdb::master::config':
           puppetdb_server => 'puppetdbserver.example.com',
         }
       }
   
       # This is the puppetdb server
       if $::hostname == 'puppetdbserver' {
         class { 'puppetdb':
           listen_address        => '0.0.0.0',
           open_listen_port      => true,
           open_ssl_listen_port  => true,
           java_args => { '-Xmx' => '2g', },
         }
       }
   
   - I highly recommend using puppetboard with 
   puppetdb: https://github.com/voxpupuli/puppetboard


On Wednesday, April 20, 2016 at 7:59:00 AM UTC-5, Geoff Galitz wrote:
>
>
> Hi...
>
> Is it possible to get compile master, master of master and code manager 
> (file sync) working in the open source versions?  Specifically:
>
> puppetserver-2.3.1-1.el7.noarch
> puppetlabs-release-pc1-1.0.0-1.el7.noarch
>
> Or are there pointers to get similar functionality via the open source 
> packages?
>
> -G
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/592c18b2-b20a-44a2-90c8-86365a1ee542%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to