After doing a “yum update” (CentOS 7.9) and running “pf-maint” today our test
cluster developed a problem where it failed starting the keepalived daemon.
# perl -I/usr/local/pf/lib -Mpf::services::manager::keepalived -e
'pf::services::manager::keepalived->new()->generateConfig()'
Can't use string ("") as an ARRAY ref while "strict refs" in use at
/usr/local/pf/lib/pf/services/manager/keepalived.pm line 94.
Adding some debug printout in keepalived.pm around line 94 gives that the
“static routes” field is empty:
# perl -I/usr/local/pf/lib -Mpf::services::manager::keepalived -e
'pf::services::manager::keepalived->new()->generateConfig()'
$VAR1 = {
'dhcpdetector' => 'enabled',
'dhcp_rate_limiting' => 5,
'connection_type_change_detection' => 'disabled',
'staticroutes' => '',
'dhcp_filter_by_message_types' => [
'DHCPREQUEST',
'DHCPACK'
],
'rogue_dhcp_detection' => 'enabled',
'rogueinterval' => '10',
'force_listener_update_on_ack' => 'disabled',
'interfaceSNAT' => '',
'hostname_change_detection' => 'disabled',
'dhcp_process_ipv6' => 'enabled',
'dhcpoption82logger' => 'disabled'
};
The following patch “fixes” the issue. I haven not investigated this issue in
more detail but at least if seems to work for us after this fix…
diff -u pf/lib/pf/services/manager/keepalived.pm.ORIG
pf/lib/pf/services/manager/keepalived.pm
--- pf/lib/pf/services/manager/keepalived.pm.ORIG 2022-02-12
20:32:10.256958514 +0100
+++ pf/lib/pf/services/manager/keepalived.pm 2022-02-12 20:32:18.246341275
+0100
@@ -91,11 +91,13 @@
#Static from packetfence config
EOT
+ if ($Config{'network'}{'staticroutes'}) {
foreach my $route (@{$Config{'network'}{'staticroutes'}}) {
$tags{'vrrp'} .= <<"EOT";
$route
EOT
}
+ }
$tags{'vrrp'} .= <<"EOT";
#PacketFence managed networks
$routes
-Peter
_______________________________________________
PacketFence-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/packetfence-users