如何在bash脚本中查询haproxy负载均衡器主机当前是主要的,哪些是次要的?



我希望能够通过在两个负载平衡器上运行的bash脚本确定哪个LB是主LB,哪个LB是辅助LB。

背景是:对于HAproxy负载平衡器对上的Letsencrypt证书的更新,其中服务IP通常绑定到主服务器,有必要确定哪个服务器是主服务器(有服务IP绑定),哪个服务器只是辅助备份(没有通过端口:80和端口:443访问web)

如果您遵循Sebastian Schrader https://serverfault.com/a/871783的指导,以下步骤将有助于确定主和备份:

IFS="/"
# /org/keepalived/Vrrp1/Instance/ens192/151/IPv4
vrrpInstance=$(/usr/bin/busctl tree | grep keepalived | grep IPv4)
set $vrrpInstance
#151
vrrpRouterID=$7
# (us) 2 "Master" or "Backup"
vrrpProp=$(/usr/bin/busctl get-property org.keepalived.Vrrp1 /org/keepalived/Vrrp1/Instance/ens192/"${vrrpRouterID}"/IPv4 org.keepalived.Vrrp1.Instance State)
# Master or Backup
vrrpStatus=$(echo ${vrrpProp} | cut -c 9-14)
unset IFS

最新更新