# Install NFS client. # class nfs::client { require portmap::server package { "nfs-utils": ensure => installed, name => $::operatingsystem ? { "ubuntu" => "nfs-common", default => "nfs-utils", }, } case $::operatingsystem { "fedora": { # https://bugzilla.redhat.com/show_bug.cgi?id=692008 service { "NetworkManager-wait-online": ensure => stopped, enable => true, } } "ubuntu": { file { "/etc/modprobe.d/lockd.conf": ensure => present, mode => "0644", owner => "root", group => "root", content => "options lockd nlm_tcpport=4001 nlm_udpport=4001\n", before => Package["nfs-utils"], } augeas { "set-nfs-common": context => "/files/etc/default/nfs-common", changes => "set STATDOPTS '\"--port 4000\"'", notify => Service["nfslock"], require => Package["nfs-utils"], } } default: { } } service { "nfslock": ensure => running, enable => true, name => $::operatingsystem ? { "centos" => $::operatingsystemrelease ? { /^[1-6]/ => "nfslock", default => "rpc-statd", }, "fedora" => $::operatingsystemrelease ? { /^([1-9]|1[0-5])$/ => "nfslock", default => "nfs-lock", }, "ubuntu" => "statd", default => "nfslock", }, hasstatus => true, require => Package["nfs-utils"], } } # Install and configure NFS server. # # === Parameters # # $servers: # Number of nfs server processes to be started. Defaults to 8. # # $versions: # Array of NFS versions to enable. Defaults to [ "3" ]. # class nfs::server( $servers="8", $versions=["3"], ) { $default_versions = [ "2", "3", "4" ] $disable_versions = inline_template('<%= (@default_versions - @versions).map { |v| "-N %s" % v }.join(" ") %>') require nfs::client file { "/etc/exports": ensure => present, source => [ "puppet:///files/nfs/exports.${::homename}", "puppet:///modules/nfs/exports", ], mode => "0644", owner => "root", group => "root", notify => Exec["exportfs"], } case $::operatingsystem { "centos","redhat","fedora": { file { "/etc/sysconfig/nfs": ensure => present, mode => "0644", owner => "root", group => "root", content => template("nfs/nfs.sysconfig.erb"), notify => Service["nfs"], } } "ubuntu": { package { "nfs-kernel-server": ensure => installed, } file { "/etc/default/nfs-kernel-server": ensure => present, mode => "0644", owner => "root", group => "root", content => template("nfs/nfs-kernel-server.erb"), require => Package["nfs-kernel-server"], notify => Service["nfs"], } } default: { } } service { "nfs": ensure => running, name => $::operatingsystem ? { "centos" => $::operatingsystemrelease ? { /^[1-6]/ => "nfs", default => "nfs-server", }, "fedora" => $::operatingsystemrelease ? { /^([1-9]|1[0-5])$/ => "nfs", default => "nfs-server", }, "ubuntu" => "nfs-kernel-server", default => "nfs", }, enable => true, hasstatus => true, } exec { "exportfs": command => "exportfs -rav", path => "/bin:/usr/bin:/sbin:/usr/sbin", refreshonly => true, require => Service["nfs"], } }