feat: restart networking on network changes #88

Merged
unkinben merged 1 commits from neoloc/network_restart into develop 2024-07-03 20:37:05 +10:00

View File

@ -9,19 +9,37 @@ class networking (
include network include network
include networking::params include networking::params
# manage interfaces
$interfaces.each | $interface, $data | { $interfaces.each | $interface, $data | {
$merged_data = merge($interface_defaults, $data) $merged_data = merge($interface_defaults, $data)
network_config {$interface: network_config { $interface:
* => $merged_data, * => $merged_data,
notify => Exec['networking_reload_network'],
} }
} }
# manage routes
$routes.each | $route, $data | { $routes.each | $route, $data | {
$merged_data = merge($route_defaults, $data) $merged_data = merge($route_defaults, $data)
network_route {$route: network_route { $route:
* => $merged_data, * => $merged_data,
notify => Exec['networking_reload_network'],
} }
} }
# determine which networking service to restart
$restart_command = $facts['os']['family'] ? {
'RedHat' => '/usr/bin/systemctl restart network',
'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 # prevent DNS from being overwritten by networkmanager
if $networking::params::nwmgr_dns_none { if $networking::params::nwmgr_dns_none {
file {'/etc/NetworkManager/conf.d/dns_none.conf': file {'/etc/NetworkManager/conf.d/dns_none.conf':