]> gitweb.fluxo.info Git - puppet-nfs.git/commitdiff
Add exports
authorTom De Vylder <tom@penumbra.be>
Tue, 27 Nov 2012 15:44:18 +0000 (16:44 +0100)
committerTom De Vylder <tom@penumbra.be>
Tue, 27 Nov 2012 15:57:32 +0000 (16:57 +0100)
README.md
manifests/config.pp
manifests/export.pp [new file with mode: 0644]
templates/export.erb [new file with mode: 0644]

index aaaba04f3a90cab54d923e6e50894f5977e39fa5..d5bc5bb61696fcc27b948b104d1bad980634e568 100644 (file)
--- a/README.md
+++ b/README.md
       }
     }
 
+### Export NFS shares
+
+    node /box/ {
+      class { 'nfs':
+        server => true;
+      }
+
+      nfs::export { '/srv/nfs01 10.0.1.1/24':
+        export_directory => '/srv/nfs01',
+        export_target    => '10.0.1.1/24',
+        export_options   => 'rw,sync,no_root_squash',
+      }
+
+      nfs::export { '/srv/nfs01 10.0.2.1/24':
+        export_directory => '/srv/nfs01',
+        export_target    => '10.0.2.1/24',
+        export_options   => 'rw,sync,no_root_squash',
+      }
+    }
+
index e55cb59ec62aefbacbaf09a851dd644359036b8e..a9e522221fae302dd79b1886789a62c683708417 100644 (file)
@@ -9,12 +9,17 @@ class nfs::config {
     group   => $::nfs::config_group,
   }
 
-  if $::nfs::client {
-  }
-
   if $::nfs::server {
-    file { $::nfs::config_file:
-      ensure => directory,
+    concat { $::nfs::config_file:
+      group => $::nfs::config_group,
+      mode  => $::nfs::config_mode,
+      owner => $::nfs::config_user,
+    }
+
+    concat::fragment { 'export_header':
+      target  => $::nfs::config_file,
+      content => "# Managed by Puppet\n\n",
+      order   => 01,
     }
   }
 }
diff --git a/manifests/export.pp b/manifests/export.pp
new file mode 100644 (file)
index 0000000..9584255
--- /dev/null
@@ -0,0 +1,22 @@
+# = Define: nfs::export
+#
+define nfs::export (
+  $export_directory,
+  $export_target,
+  $ensure         = present,
+  $export_options = 'no_root_squash',
+) {
+
+  if ! $::nfs::server {
+    fail 'NFS server support is not enabled.'
+  }
+
+  if $ensure == present {
+    concat::fragment { "export_${name}":
+      target  => $::nfs::config_file,
+      content => template('nfs/export.erb'),
+      order   => 10,
+    }
+  }
+}
+
diff --git a/templates/export.erb b/templates/export.erb
new file mode 100644 (file)
index 0000000..fa882eb
--- /dev/null
@@ -0,0 +1,3 @@
+# <%= scope.lookupvar('name') -%> 
+<%= scope.lookupvar('export_directory') -%> <%= scope.lookupvar('export_target') -%>(<%= scope.lookupvar('export_options') -%>)
+