Puppet Manifests for SL 5.3
===========================


Introduction
------------

As we are planning to upgrade from SL 5.1 to SL 5.3, we decided to
reorganize and reimplement all the client configuration manifests.


Procedure
---------

**Note**: Here we are still in the development state, thus filenames
and everything probably will be changed for the productive setup.


Puppet SVN
~~~~~~~~~~

To manage the changes to manifests and client configuration files we
use `subversion (svn)` as a revision control::

    # ENV=CnodeSL5
    # mkdir /var/puppet/environments/$ENV
    # cd /var/puppet/environments/$ENV


Check out all manifests::

    # svn co svn+ssh://svn.psi.ch/repos/linux/kickstart/trunk/puppet/manifests


Check out modules individually::

    # mkdir /var/puppet/environments/$ENV/modules
    # cd /var/puppet/environments/$ENV/modules
    # svn co svn+ssh://svn.psi.ch/repos/linux/kickstart/trunk/puppet/Modules/facts
    # svn co svn+ssh://svn.psi.ch/repos/linux/kickstart/trunk/puppet/Modules/cnode
    # svn co svn+ssh://svn.psi.ch/repos/linux/kickstart/trunk/puppet/Modules/psibasic
    # svn co svn+ssh://svn.psi.ch/repos/linux/kickstart/trunk/puppet/Modules/ssh
    # svn co svn+ssh://svn.psi.ch/repos/linux/kickstart/trunk/puppet/Modules/ntp
    # svn co svn+ssh://svn.psi.ch/repos/linux/kickstart/trunk/puppet/Modules/scratch


On the Puppet Server Side
~~~~~~~~~~~~~~~~~~~~~~~~~

Restart the puppet server. For testing use some increased verbosity
(-v), debug mode (-d) and log to a file (-l).  Set these options in
`/etc/init.d/puppetmaster` using variable `PUPPETMASTER_OPTS`::

    # vi /etc/init.d/puppetmaster
    ...
    PUPPETMASTER_OPTS="-v -d -l /var/log/puppet/puppetmaster.log"
    ...

    # /etc/init.d/puppetmaster restart


On the Puppet Client Side
~~~~~~~~~~~~~~~~~~~~~~~~~

To specify which environment the Puppet client uses you can specify a
value for the environment configuration variable in the client's
`puppet.conf` file.  Here the environment `developmentSL53` is set.

Additionally the name of the puppet server `psi-puppet1.psi.ch` is
assigned::

    # vi /etc/puppet/puppet.conf
    [main]
        vardir = /var/puppet
        logdir = /var/log/puppet
        rundir = /var/run/puppet
        ssldir = $vardir/ssl
        environment = developmentSL53

    [puppetd]
        classfile = $vardir/classes.txt
        localconfig = $vardir/localconfig
        factsync = true
        server = psi-puppet1.psi.ch

In the Kickstart
~~~~~~~~~~~~~~~~

In the SL 5.3 Installation Tree
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Create the base directories, its subdirectories and some first test
file for the `Basic` class as declared above in the manifest
`basic.pp` on the server::

    # cd /afs/psi.ch/software/linux/dist/scientific/53/
    # mkdir -p puppet/files/Basic/etc 
    # touch puppet/files/Basic/etc/puppet-test-file
