From b0934caf23cb9cbacf3044497efcbead0a4e4031 Mon Sep 17 00:00:00 2001 From: Ben Vincent Date: Wed, 3 Jul 2024 20:04:33 +1000 Subject: [PATCH] feat: restart networking on network changes - restart network on RedHat - restart networking on debian --- modules/networking/manifests/init.pp | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/modules/networking/manifests/init.pp b/modules/networking/manifests/init.pp index f6c6931..ae3970a 100644 --- a/modules/networking/manifests/init.pp +++ b/modules/networking/manifests/init.pp @@ -9,19 +9,37 @@ class networking ( include network include networking::params + # manage interfaces $interfaces.each | $interface, $data | { $merged_data = merge($interface_defaults, $data) - network_config {$interface: - * => $merged_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, + network_route { $route: + * => $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 if $networking::params::nwmgr_dns_none { file {'/etc/NetworkManager/conf.d/dns_none.conf':