Basic Puppetmaster installation

  1. [Note]Note

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

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

  2. apprentice@puppet:~$ wget -q http://apt.puppetlabs.com/puppetlabs-release-wheezy.deb
      apprentice@puppet:~$ sudo dpkg -i puppetlabs-release-wheezy.deb
      apprentice@puppet:~$ sudo apt-get update

  3. apprentice@puppet:~$sudo apt-get install puppetmaster puppet-el

  4. apprentice@puppet:~$ sudo apt-get install git
      apprentice@puppet:~$ sudo git init
      apprentice@puppet:~$ sudo git add $(find -type f -not -path \*\.git\*)
      apprentice@puppet:~$ sudo git commit -m "initial commit - wheezy dist"

  5. apprentice@puppet:~$ sudo sh -c "echo '*.rug.nl' > /etc/puppet/autosign.conf"

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

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


  7. apprentice@puppet:/etc/puppet$ sudo mkdir -p /srv/puppet/envs/{production,testing,joe,william,jack,averell}
    apprentice@puppet:/etc/puppet$ sudo mv modules/ manifests/ templates/ /srv/puppet/envs/production/
    apprentice@puppet:/etc/puppet$ sudo mkdir -p /srv/puppet/common
    apprentice@puppet:/etc/puppet$ sudo mkdir -p /srv/puppet/common/modules

  8. /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. apprentice@puppet:~$ sudo service puppetmaster stop
    Stopping puppet master.
    apprentice@puppet:/etc/puppet$ sudo puppet master --no-daemonize --verbose
    Starting Puppet master version 3.0.1