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"],
}
}