}
}
+### 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',
+ }
+ }
+
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,
}
}
}
--- /dev/null
+# = 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,
+ }
+ }
+}
+
--- /dev/null
+# <%= scope.lookupvar('name') -%>
+<%= scope.lookupvar('export_directory') -%> <%= scope.lookupvar('export_target') -%>(<%= scope.lookupvar('export_options') -%>)
+