diff options
Diffstat (limited to 'modules/networking/manifests/networkd.pp')
-rw-r--r-- | modules/networking/manifests/networkd.pp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/modules/networking/manifests/networkd.pp b/modules/networking/manifests/networkd.pp new file mode 100644 index 0000000..4376a29 --- /dev/null +++ b/modules/networking/manifests/networkd.pp @@ -0,0 +1,32 @@ +define networking::networkd ( + Hash $network, + Optional[Hash] $match = { 'Name' => $facts['networking']['primary'] }, + String $root = '/', + String $path = "${root}/etc/systemd/network", + String $filename = $name, + String $file = "${path}/${filename}.conf", + Boolean $notify_ = true, + Boolean $manage_directory = true, +) { + + if $manage_directory { + file { $path: + ensure => directory, + purge => true, + recurse => true, + } + } + + inifile::create_ini_settings({ + 'Match' => $match, + 'Network' => $network, + }, { path => $file, }) + + if $notify_ { + Ini_Setting <| path == $file |> + ~> exec { 'networkctl reload': + path => ['/bin', '/usr/bin',], + refreshonly => true, + } + } +} |