Использование скриптов#
Функциональность протокола 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"