class nfs-server {
- include ferm::nfs-server
+ package { [
+ 'nfs-common',
+ 'nfs-kernel-server'
+ ]:
+ ensure => installed
+ }
- package {
- nfs-common: ensure => installed;
- nfs-kernel-server: ensure => installed;
- }
+ service { 'nfs-common':
+ hasstatus => false,
+ status => '/bin/true',
+ }
+ service { 'nfs-kernel-server':
+ hasstatus => false,
+ status => '/bin/true',
+ }
- file {
- "/etc/default/nfs-common":
- source => "puppet:///nfs-server/nfs-common.default"),
- require => Package["nfs-common"],
- notify => Exec["nfs-common restart"];
- "/etc/default/nfs-kernel-server":
- source => "puppet:///nfs-server/nfs-kernel-server.default"),
- require => Package["nfs-kernel-server"],
- notify => Exec["nfs-kernel-server restart"];
- "/etc/modprobe.d/lockd.local":
- source => "puppet:///nfs-server/lockd.local.modprobe");
- }
+ case $::hostname {
+ lw01,lw02,lw03,lw04: {
+ $client_range = '10.0.0.0/8'
+ }
+ milanollo: {
+ $client_range = '172.29.122.0/24'
+ }
+ beach,glinka: {
+ $client_range = '192.168.2.0/24'
+ }
+ default: {
+ # Better than 0.0.0.0/0 - we really ought to configure a
+ # client range for them all instead of exporting to the world.
+ $client_range = '127.0.0.0/8'
+ }
+ }
- exec {
- "nfs-common restart":
- path => "/etc/init.d:/usr/bin:/usr/sbin:/bin:/sbin",
- refreshonly => true;
- "nfs-kernel-server restart":
- path => "/etc/init.d:/usr/bin:/usr/sbin:/bin:/sbin",
- refreshonly => true;
- }
+ @ferm::rule { 'dsa-portmap':
+ description => 'Allow portmap access',
+ rule => "&TCP_UDP_SERVICE_RANGE(111, $client_range)"
+ }
+ @ferm::rule { 'dsa-nfs':
+ description => 'Allow nfsd access',
+ rule => "&TCP_UDP_SERVICE_RANGE(2049, $client_range)"
+ }
+ @ferm::rule { 'dsa-status':
+ description => 'Allow statd access',
+ rule => "&TCP_UDP_SERVICE_RANGE(10000, $client_range)"
+ }
+ @ferm::rule { 'dsa-mountd':
+ description => 'Allow mountd access',
+ rule => "&TCP_UDP_SERVICE_RANGE(10002, $client_range)"
+ }
+ @ferm::rule { 'dsa-lockd':
+ description => 'Allow lockd access',
+ rule => "&TCP_UDP_SERVICE_RANGE(10003, $client_range)"
+ }
+
+ file { '/etc/default/nfs-common':
+ source => 'puppet:///modules/nfs-server/nfs-common.default',
+ before => Package['nfs-common'],
+ notify => Service['nfs-common'],
+ }
+ file { '/etc/default/nfs-kernel-server':
+ source => 'puppet:///modules/nfs-server/nfs-kernel-server.default',
+ before => Package['nfs-kernel-server'],
+ notify => Service['nfs-kernel-server'],
+ }
+ file { '/etc/modprobe.d/lockd.local':
+ source => 'puppet:///modules/nfs-server/lockd.local.modprobe',
+ before => Package['nfs-common'],
+ notify => Service['nfs-common'],
+ }
}