Following are steps on how to install and configure a puppet client: {{{ rpm -ivh https://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm yum -y install puppet vim /etc/puppet/puppet.conf }}} {{{ }}} Following are example configures: [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 #puppet server westcoast dns name server = li823-33.members.linode.com #your client server dns name certname = environment = production [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 #runinterval = 8h onetime = true # Where puppetd caches the local configuration. An # extension indicating the cache format is added automatically. # The default value is '$confdir/localconfig'. localconfig = $vardir/localconfig After editing the puppet.conf, run: {{{ puppet agent --test --debug }}} Then Ssh to puppet master server (westcoast server: li823-33.members.linode.com), run: {{{ docker ps The result will be: CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 554b5ba9c2b4 7a52905b3674 "/bin/bash" 2 weeks ago Up 2 weeks jovial_shockley e2f8ce9e076e registry "/entrypoint.sh /etc 2 weeks ago Up 2 weeks 0.0.0.0:5000->5000/tcp registry }}} {{{ docker attach 554b5ba9c2b4 (go into the puppet server container) }}} {{{ service puppetserver status (make sure the puppet server is running) puppetserver (pid 109) is running... Then list the certificates: puppet cert list -all }}} we will see the client's certificate has not been signed yet (no “+” in front): "" (SHA256) FA:42:85:8A:27:C8:DE:39:AC:20:6A:D5:F5:C7:B2:64:12:B5:FB:93:31:9B:27:DC:28:61:45:0A:F9:8E:C0:57 Then we run: {{{ puppet cert sign }}} to authorize the client certificate. List the certificates again to see the client's certificate is authorized. Then Type '''Ctrl+p, Ctrl+q''' will help you to detach from the puppet server container and back to the westcoast bash shell. In the client you can run: {{{ puppet agent --test --debug }}} again to see the client could communicate with the server.