Назад | Перейти на главную страницу

Выдача одной команды из кластера серверов?

У меня есть кластер серверов, на котором будет работать простой ruok команда с фалловером. Команда будет простой, например curl -X POST http://foo.com/status. В связи с тем, что у меня будет от 3 до 300 узлов в этом пуле, я хочу убедиться, что эта команда отправляется только раз в десять минут. Я столкнулся с проблемой, что я не могу просто добавить crontab на свои серверы, если я не хочу, чтобы все они отправлялись каждые X минут.

Я начал смотреть на использование HashiCorp Consul поскольку он довольно высокодоступен и кажется проще, чем etcd или Zookeeper. Я не знаю, как на самом деле создать что-то, что будет делать это.

Я буду использовать этот скрипт на всех серверах

#!/bin/bash

curl -i -H "Accept: application/json" \
-H "Content-Type:application/json"    \
-X POST --data '{"status":"ruok"}' "https://foobar.com/status"

Итак, как мне написать Consul, чтобы запустить это один раз в пуле узлов?

Вы могли бы использовать этот.

Просто погуглил "распределенный cron с использованием консула".