class base::puppet::client {

package {
"puppet":
ensure => installed;
"facter":
notify => Service["puppet"],
ensure => latest;
}

file {
"/etc/puppet/puppet.conf":
owner => root,
group => root,
content => template("base/templates/puppet_client.conf.erb"),
notify => Service["puppet"];

"/etc/puppet/namespaceauth.conf":
owner => root,
group => root,
content => template("base/templates/puppet_namespaceauth_client.conf.erb"),
notify => Service["puppet"];

"/etc/sysconfig/puppet":
owner => root,
group => root,
content => template("base/templates/sysconfig_puppet"),
notify => Service["puppet"];

"/tmp/puppet_check.out":
owner => root,
group => root,
backup => false,
content => template("base/templates/puppet_check.erb");
}

service {
"puppet":
ensure => running,
enable => true,
hasrestart => true,
subscribe => [ File["/etc/sysconfig/puppet"] , File["/etc/puppet/puppet.conf"]];
}

}