Basic Puppetmaster installation

  1. [Note]Note

    The host named puppet is the puppetmaster. This is by widespread Puppet convention.

    Install Wheezy on Host

    Use preseed or Puppet, or - if you really must - by hand.

  2. Use the PuppetLabs .deb repository

  3. Install Puppetmaster packages

  4. Bring /etc/puppet under git control

  5. Set up autosigning

  6. Configure DNS aliases

    To /etc/puppet/puppet.conf, under the [master] section, add:

    certname = host06.servers.mydomain.com
    dns_alt_names = puppet.servers.mydomain.com
    	  

  7. Create some environment dirs

  8. Configure the puppetmaster

    /etc/puppet/puppet.conf

    [main]
    logdir=/var/log/puppet
    vardir=/var/lib/puppet
    ssldir=/var/lib/puppet/ssl
    rundir=/var/run/puppet
    # Note: using variables here may break Foreman. (But Foreman isn't installed)
    factpath=$vardir/lib/facter
    templatedir=$confdir/templates
    
    [master]
    # These are needed when the puppetmaster is run by passenger
    # and can safely be removed if webrick is used.
    ssl_client_header = SSL_CLIENT_S_DN 
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    
    certname = host06.servers.mydomain.com
    dns_alt_names = puppet.service.rug.nl
    
    #storeconfigs = true
    #storeconfigs_backend = puppetdb
    
    [production]
            modulepath = /srv/puppet/envs/production/modules:/srv/puppet/common/modules
            templatedir = /srv/puppet/envs/production/templates
            manifestdir = /srv/puppet/envs/production/manifests
            manifest = /srv/puppet/envs/production/manifests/site.pp
    
    [testing]
            modulepath = /srv/puppet/envs/testing/modules:/srv/puppet/common/modules
            templatedir = /srv/puppet/envs/testing/templates
            manifestdir = /srv/puppet/envs/testing/manifests
            manifest = /srv/puppet/envs/testing/manifests/site.pp
    
    [joe]
            modulepath = /srv/puppet/envs/joe/modules:/srv/puppet/common/modules
            templatedir = /srv/puppet/envs/joe/templates
            manifestdir = /srv/puppet/envs/joe/manifests
            manifest = /srv/puppet/envs/joe/manifests/site.pp
    
    [william]
            modulepath = /srv/puppet/envs/william/modules:/srv/puppet/common/modules
            templatedir = /srv/puppet/envs/william/templates
            manifestdir = /srv/puppet/envs/william/manifests
            manifest = /srv/puppet/envs/william/manifests/site.pp
    
    [jack]
            modulepath = /srv/puppet/envs/jack/modules:/srv/puppet/common/modules
            templatedir = /srv/puppet/envs/jack/templates
            manifestdir = /srv/puppet/envs/jack/manifests
            manifest = /srv/puppet/envs/jack/manifests/site.pp
    
    [averell]
            modulepath = /srv/puppet/envs/averell/modules:/srv/puppet/common/modules
            templatedir = /srv/puppet/envs/averell/templates
            manifestdir = /srv/puppet/envs/averell/manifests
            manifest = /srv/puppet/envs/averell/manifests/site.pp
    	  

  9. Run the puppetmaster in the foreground