61 lines
1.6 KiB
Puppet
61 lines
1.6 KiB
Puppet
# 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',
|
|
}
|
|
}
|
|
}
|