- enable enough ceph/frr to join to cephfs - notify sshd when restarting the network - update ssh principals to include all ssh interfaces Reviewed-on: #362
98 lines
2.7 KiB
Puppet
98 lines
2.7 KiB
Puppet
# unkin networking module
|
|
class networking (
|
|
Hash $interfaces = {},
|
|
Hash $interface_defaults = {},
|
|
Hash $routes = {},
|
|
Hash $route_defaults = {},
|
|
Boolean $use_networkd = lookup('systemd::manage_networkd', undef, undef, false),
|
|
){
|
|
|
|
include network
|
|
include networking::params
|
|
|
|
if $use_networkd {
|
|
|
|
include systemd
|
|
|
|
service { 'NetworkManager':
|
|
ensure => 'stopped',
|
|
enable => false,
|
|
}
|
|
|
|
$interfaces.each |String $iface, Hash $data| {
|
|
$type = $data['type']
|
|
#$params = $data.filter |$key, $value| { $key != 'type' }
|
|
|
|
case $type {
|
|
'bridge': { networking::bridge { $iface: * => $data } }
|
|
'dummy': { networking::dummy { $iface: * => $data } }
|
|
'static': { networking::static { $iface: * => $data } }
|
|
'physical': { networking::static { $iface: * => $data } }
|
|
default: {
|
|
fail("Unsupported interface type '${type}' for interface '${iface}'")
|
|
}
|
|
}
|
|
}
|
|
}else{
|
|
# 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 = $use_networkd ? {
|
|
true => '/usr/bin/systemctl restart systemd-networkd',
|
|
default => $facts['os']['family'] ? {
|
|
'RedHat' => $facts['os']['release']['major'] ? {
|
|
'8' => '/usr/bin/systemctl restart network',
|
|
'9' => '/usr/bin/systemctl restart NetworkManager',
|
|
default => fail('Unsupported RedHat OS release for networking restart'),
|
|
},
|
|
'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,
|
|
notify => Service['sshd'],
|
|
}
|
|
|
|
# prevent DNS from being overwritten by networkmanager
|
|
file {'/etc/NetworkManager/conf.d':
|
|
ensure => directory,
|
|
owner => 'root',
|
|
group => 'root',
|
|
}
|
|
|
|
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',
|
|
}
|
|
}
|
|
}
|