aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md20
-rw-r--r--manifests/config.pp15
-rw-r--r--manifests/export.pp22
-rw-r--r--templates/export.erb3
4 files changed, 55 insertions, 5 deletions
diff --git a/README.md b/README.md
index aaaba04..d5bc5bb 100644
--- a/README.md
+++ b/README.md
@@ -25,3 +25,23 @@
}
}
+### 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',
+ }
+ }
+
diff --git a/manifests/config.pp b/manifests/config.pp
index e55cb59..a9e5222 100644
--- a/manifests/config.pp
+++ b/manifests/config.pp
@@ -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
index 0000000..9584255
--- /dev/null
+++ b/manifests/export.pp
@@ -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
index 0000000..fa882eb
--- /dev/null
+++ b/templates/export.erb
@@ -0,0 +1,3 @@
+# <%= scope.lookupvar('name') -%>
+<%= scope.lookupvar('export_directory') -%> <%= scope.lookupvar('export_target') -%>(<%= scope.lookupvar('export_options') -%>)
+