Получение статуса главного маршрутизатора VRRP Keepalived

У меня есть два маршрутизатора Linux (RHEL 7), участвующих в резервной конфигурации VRRP, предоставляемой пакетом keepalived версии 2.0.20. Эти два маршрутизатора раньше работали под управлением RHEL 6 и keepalived версии 2.0.16, но недавно мы обновили их до вышеупомянутых версий.

Перед обновлением у меня был сценарий, который я мог запустить на резервном маршрутизаторе, который заставил бы маршрутизатор взять на себя роль главного маршрутизатора. Сценарий определит значение приоритета текущего главного маршрутизатора, а затем повысит свой собственный приоритет до 1, а затем перезапустит службу поддержки активности. Это приведет к тому, что резервный маршрутизатор станет главным.

Сценарий собирает значение текущего главного маршрутизатора, вводя следующие команды:

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 сервис. Все остальные аспекты поддержки активности работают правильно.

0
задан 11 March 2020 в 22:06
1 ответ

Мне удалось заставить это работать. В процессе устранения неполадок я обнаружил, что selinux не позволяет Keepalived сохранять свое состояние в каталоге /tmp. После решения проблем с selinux и создания необходимой политики selinux все заработало, как и ожидалось.

0
ответ дан 20 April 2020 в 15:18

Теги

Похожие вопросы