summaryrefslogtreecommitdiff
path: root/manifests/networkd.pp
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2022-01-02 04:31:50 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2022-01-02 04:44:39 +0100
commita7b0f72f220528ba4de33f52104fe674000f625a (patch)
treeeae89d0adf398eaa9e31432b85fe9d0c926bd361 /manifests/networkd.pp
downloadnetworking-a7b0f72f220528ba4de33f52104fe674000f625a.tar.gz
networking-a7b0f72f220528ba4de33f52104fe674000f625a.tar.xz
Network rewrites.
Diffstat (limited to 'manifests/networkd.pp')
-rw-r--r--manifests/networkd.pp32
1 files changed, 32 insertions, 0 deletions
diff --git a/manifests/networkd.pp b/manifests/networkd.pp
new file mode 100644
index 0000000..4376a29
--- /dev/null
+++ b/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,
+ }
+ }
+}