Howto Install and Configure Puppetmaster and Puppets in Ubuntu
Configure Puppetmaster [puppetmaster]
First we must configure the Puppetmaster. Later, we will configure the Puppets and exchange encrypted keys to establish trust between the servers.
Install puppetmaster Debian package(s).
[puppetvishal]$ apt-get update
[puppetvishal]$ apt-get install puppetmaster
Enable fileserving and plugins.
[puppetvishal]$ nano /etc/puppet/fileserver.conf
Change the file to look like the following:
[files] path /etc/puppet/files/ allow 192.168.1.0/24 [plugins] allow 192.168.1.0/24
Configure Puppets [Client]
Install puppet Debian package(s).
[puppetvishal]$ apt-get install puppet
Verify your Puppet configuration file looks like the following:
[main]
logdir=/var/log/puppet
vardir=/var/lib/puppet
ssldir=/var/lib/puppet/ssl
rundir=/var/run/puppet
factpath=$vardir/lib/facter
pluginsync=true
[puppetmasterd]
templatedir=/var/lib/puppet/templates
Initiate key exchange with puppetmaster that times out after 60 seconds. Repeat this on your second Puppet server.
[puppetvishal]$ puppetd –server puppetmaster.example.com –waitforcert 60
Your Puppets are now configured. All you need to do is accept the certificate requests on the Puppetmaster. All administration now takes place on the Puppetmaster.
Sign Certificate Requests [puppetmaster]
Back on the puppetmaster, check to see if the certificate requests are pending using the following command:
[puppetvishal]$ puppetca -la
If your certificates are in the list, sign them one at a time. You should see a confirmation.
[puppetvishal]$ puppetca –sign puppet1.example.com
Configuring Nodes and Modules [puppetmaster]
[puppetvishal]$ vim /etc/puppet/manifests/site.pp
# Create “/tmp/testfile” if it doesn’t exist.
class test_class {
file { “/tmp/testfile”:
ensure => present,
mode => 600,
owner => root,
group => root }
}
# tell puppet on which client to run the class
node Urclient {
include test_class
}
On the client run puppetd in verbose mode (-v) and only once (-o).
[puppetvishal]$ puppetd -v -o
[puppetvishal]$ ls -l /tmp/testfile
-rw——- 1 root root 0 2011-05-03 18:28 /tmp/testfile
testing is complete and you have a working Puppet setup.
Thanks,
Vishal Vyas
