我有两个 Linux 路由器 (RHEL 7) 参与了由 keepalived 软件包版本 2.0.20 提供的冗余 VRRP 配置。这两个路由器曾经运行 RHEL 6 和 keepalived 版本 2.0.16,但我们最近将它们升级到上述版本。
在我们升级之前,我有一个可以在备份路由器上运行的脚本,它会导致路由器接管为主路由器。该脚本将收集当前主路由器的优先级值,然后将其自身的优先级提高 1,然后重新启动 keepalived 服务。这将导致备份路由器接管为主。
该脚本将通过发出以下命令来收集当前主路由器的值:
kill -s $(keepalived --signum=DATA) $(cat /var/run/keepalived.pid)
vrrpPriority='more /tmp/keepalived.data | grep -m1 "Master priority" | awk '{print $4}''
现在我们已经升级了,看起来第一个命令不再做任何事情了。该命令似乎执行没有错误,但我从未在 /tmp/keepalived.data 中获得生成的文件。所以第二个命令失败,因为该文件不存在。
是否有更好或不同的方法来收集当前主路由器的优先级值?
另一个区别是,当我们在 RHEL 6 中运行时,keepalived 作为新贵脚本运行,而今天 keepalived 作为 systemd 服务运行。keepalived 的所有其他方面似乎工作正常。
我已经能够得到这个工作。在故障排除过程中,我发现 selinux 阻止 Keepalived 将其状态转储到 /tmp 目录。在解决了 selinux 问题并创建了所需的 selinux 策略后,它开始按预期工作。