class role::file_store ( Optional[Hash] $nfs_mounts = {}, Optional[String] $mountpoint = "/fichiers1", ) { include "base_installation" include "profile::fstab" include "profile::tools" include "profile::monitoring" include "profile::wireguard" unless empty($mountpoint) { class { "::nfs": server_enabled => true, nfs_v4 => true, nfs_v4_export_root => '/exports', nfs_v4_export_root_clients => 'localhost(rw)', require => Mount[$mountpoint], } $nfs_mounts.each |$nfs_mount, $hosts| { file { "$mountpoint/$nfs_mount": ensure => "directory", mode => "0755", owner => "nobody", group => "nobody", require => Mount[$mountpoint], } -> nfs::server::export { "$mountpoint/$nfs_mount": owner => "nobody", group => "nobody", ensure => "present", clients => template("role/file_store/nfs_clients.erb"), } } } }