Использование скриптов#

Функциональность протокола VRRP может быть расширена посредством пользовательских bash скриптов. ПО Факел поддерживает использования двух типов скриптов: скриптов контроля (health check) и скриптов состояния. Скрипты контроля (health check) подразумевают выполнение пользовательских проверок в дополнение к стандартной проверке доступности активного маршрутизатора. Скрипты состояния подразумевают изменение состояния, при котором активный маршрутизатор становится резервным или выходит из строя, и наоборот. Скрипты состояния могут быть использованы, например, для активации или дезактивации определенных сервисов.

Скрипты контроля#

Пример, представленный ниже, показывает настройку процесса VRRP на использование скрипта контроля, размещенного по следующему пути /config/scripts/vrrp-check.sh script каждый 60 секунд с последующим переводом группы VRRP в состояние неисправной, если результат проверки будет неудачный (то есть скрипт завершается с ненулевым состоянием) три раза подряд.

set high-availability vrrp group Foo health-check script /config/scripts/vrrp-check.sh
set high-availability vrrp group Foo health-check interval 60
set high-availability vrrp group Foo health-check failure-count 3

Скрипты состояния#

Скрипты состояния позволяют реализовать такие действия, как, например, запуск или остановку сервисов или даже изменение конфигурации ПО Факел в случае, если процесс VRRP фиксирует изменение состояния. Пример, представленный ниже, показывает настройку процесса VRRP на использование скрипта состояния, размещенного по следующему пути /config/scripts/vrrp-fail.sh с аргументом Foo при переводе группы VRRP в состояние неисправной, а также скрипта, размещенного по следующему пути /config/scripts/vrrp-master.sh, когда маршрутизатор становится активным.

set high-availability vrrp group Foo transition-script backup "/config/scripts/vrrp-fail.sh Foo"
set high-availability vrrp group Foo transition-script fault "/config/scripts/vrrp-fail.sh Foo"
set high-availability vrrp group Foo transition-script master "/config/scripts/vrrp-master.sh Foo"