summaryrefslogtreecommitdiff
path: root/modules/networking/manifests/networkd.pp
blob: 4376a294730ec9f5fcecca2758fb819c8e8f1a1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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,
    }
  }
}