Report abuse

class nfs {
   define nfs_share ($shares, $access = "*.$domain", $options = "ro") {
      share_dirs { 
         "$shares":
            share_root => $name
      }

      file {
         "/etc/exports":
            content => template("nfs/exports.erb"),
            group   => "root",
            mode    => "644",
            notify  => Service["nfs-kernel-server"],
            owner   => "root";
      }
   }

   define share_dirs($share_root) {
      file { 
         "${share_root}/$name":
            ensure => "directory",
            owner  => "root",
            group  => "root",
      }
   }

   file {
      "/etc/default/nfs-common":
         group   => "root",
         mode    => "644",
         notify  => Service["nfs-common"],
         owner   => "root",
         require => Package["nfs-kernel-server"],
         source  => "puppet://$server/nfs/nfs-common";
      "/etc/default/nfs-kernel-server":
         group   => "root",
         mode    => "644",
         notify  => Service["nfs-common"],
         owner   => "root",
         require => Package["nfs-kernel-server"],
         source  => "puppet://$server/nfs/nfs-kernel-server";
      "/etc/modprobe.d/options.local":
         group   => "root",
         mode    => "644",
         notify  => Service["nfs-common"],
         owner   => "root",
         require => Package["nfs-kernel-server"],
         source  => "puppet://$server/nfs/options.local";
   }

   package { "nfs-kernel-server":
      ensure => "present",
   }

   service { 
      [ "nfs-common", "nfs-kernel-server", "portmap" ]:
         ensure  => "running",
         require => Package["nfs-kernel-server"],
   }
}