# unkin networking module class networking ( Hash $interfaces = {}, Hash $interface_defaults = {}, Hash $routes = {}, Hash $route_defaults = {}, ){ include network include networking::params # manage interfaces $interfaces.each | $interface, $data | { $merged_data = merge($interface_defaults, $data) network_config { $interface: * => $merged_data, notify => Exec['networking_reload_network'], } } # manage routes $routes.each | $route, $data | { $merged_data = merge($route_defaults, $data) network_route { $route: * => $merged_data, notify => Exec['networking_reload_network'], } } # determine which networking service to restart $restart_command = $facts['os']['family'] ? { 'RedHat' => $facts['os']['release']['major'] ? { '8' => '/usr/bin/systemctl restart network', '9' => '/usr/bin/systemctl restart NetworkManager', }, 'Debian' => '/usr/bin/systemctl restart networking', default => fail('Unsupported OS in networking-restart-command'), } # restart network/networking only if $restart_networking boolean is true exec { 'networking_reload_network': command => $restart_command, refreshonly => true, } # prevent DNS from being overwritten by networkmanager if $networking::params::nwmgr_dns_none { file {'/etc/NetworkManager/conf.d/dns_none.conf': ensure => 'file', owner => 'root', group => 'root', mode => '0655', content => "[main]\ndns=none", } }else{ file {'/etc/NetworkManager/conf.d/dns_none.conf': ensure => 'absent', } } }