summaryrefslogtreecommitdiff
path: root/modules/networking/manifests/networkd.pp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/networking/manifests/networkd.pp')
-rw-r--r--modules/networking/manifests/networkd.pp32
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,
+ }
+ }
+}