Puppet lets you centrally manage every important aspect of your system using a cross-platform specification language that manages all the separate elements normally aggregated in different files, like users, cron jobs, and hosts, along with obviously discrete elements like packages, services, and files.
Puppet's simple declarative specification language provides powerful classing abilities for drawing out the similarities between hosts while allowing them to be as specific as necessary, and it handles dependency and prerequisite relationships between objects clearly and explicitly.
Install puppet server in debian
# aptitude install puppetmaster
By default the file-serving is disabled so we'll need to fix that by updating /etc/puppet/fileserver.conf
Install puppet client in debian
# aptitude install puppet
Client configuration file located at /etc/puppet/puppetd.conf
Note: In order for the puppet server and the puppet client(s) to be able to communicate you should ensure that port 8140 is open between the systems.
Project homepage http://reductivelabs.com/projects/puppet