We have a puppet server in westcoast (li823-33.members.linode.com) Following are steps how to install and configure the puppet server: {{{ rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm }}} {{{ yum -y install puppetserver }}} {{{ service puppetserver start }}} {{{ service puppetserver stop }}} edit /etc/puppet/puppet.conf {{{ [main] }}} . {{{ # The Puppet log directory. # The default value is '$vardir/log'. }}} . {{{ logdir = /var/log/puppet }}} . {{{ # Where Puppet PID files are kept. }}} . {{{ # The default value is '$vardir/run'. }}} . {{{ rundir = /var/run/puppet }}} . {{{ # Where SSL certificates are kept. }}} . {{{ # The default value is '$confdir/ssl'. }}} . {{{ ssldir = $vardir/ssl }}} . {{{ #put your hostname in here. }}} . {{{ dns_alt_names = }}} . {{{ always_cache_features=true }}} . {{{ environmentpath=/etc/puppet/environments/ }}} {{{ [agent] }}} . {{{ # The file in which puppetd stores a list of the classes }}} . {{{ # associated with the retrieved configuratiion. Can be loaded in }}} {{{ # the separate puppet executable using the --loadclasses }}} . {{{ # option. }}} . {{{ # The default value is '$confdir/classes.txt'. }}} . {{{ classfile = $vardir/classes.txt }}} . {{{ # Where puppetd caches the local configuration. An }}} . {{{ # extension indicating the cache format is added automatically. }}} . {{{ # The default value is '$confdir/localconfig'. }}} . {{{ localconfig = $vardir/localconfig }}} Make new environments dir in /etc/puppet/ {{{ cd /etc/puppet }}} {{{ mkdir environments }}} {{{ cd environments }}} {{{ mkdir production }}} {{{ cd production/ }}} {{{ touch environment.conf }}} {{{ mkdir manifests }}} {{{ mkdir modules }}} {{{ cd manifests }}} add the client.pp files and restart the puppetserve. Install some modules: {{{ puppet module install puppetlabs-stdlib --version 4.20.0 puppet module install puppet-selinux --version 0.5.0 puppet module install maestrodev-wget --version 1.7.3 puppet module install ceritsc-yum --version 0.9.8 puppet module install camptocamp-rsyncd --version 1.0.15 puppet module install puppetlabs-rsync --version 0.4.0 }}} ============================================================================================================= '''You could also install the puppetserver using docker:''' 1. rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 2. yum -y install docker-io 3. vim /etc/sysconfig/docker 4. other_args="--insecure-registry li823-33.members.linode.com:5000" 5. service restart docker 6. docker pull li823-33.members.linode.com:5000/centos68puppetserver 7. docker images ==> this will give you the base image we download from our docker registry 8. run the images by: docker run -d -it --net=host 9. docker ps ==> get the container ID 10. docker attach containerID ==> enter the container 11. vim /etc/puppet/puppet.conf to change the alt host name to your current server's hostname. 12. puppet cert clean --all 13. service puppetserver restart 14. make sure the puppetserver is running and all the clients can connect to the puppetserver (clients might need to regenerate their client certificate.) 15. crtl+p crtl+q to detach from the container.