У нас есть несколько серверов приложений и 2 балансировщика нагрузки (HAProxy). Облако реализовано с помощью SaltStack. Когда необходимо отключить определенный сервер приложений, мы входим в мастер соли и запускаем:
for i in {1..20}; do salt '*.lb-app' haproxy.disable_server 1.app app; done
Поскольку haproxy работает с nbproc 4
, только один звонок не переключает трафик. Таким образом, при вызове 20 раз есть приличная вероятность, что все 4 процесса отключат данный сервер.
Мне было интересно, есть ли более элегантное решение.