У меня есть собственный Perl-скрипт, который очень нуждается в рефакторинге. Чтобы не изобретать колесо заново, я ищу, существует ли его эквивалент с открытым исходным кодом, и у меня возникают проблемы с его поиском.
Скрипт запускается как демон на всех хостах и позволяет мне делать такие вещи, как:
Это ни в коем случае не ракетостроение, но я не могу найти что-либо, что воспроизводило бы эту функциональность. RunDeck подходит близко, но я не вижу, где это может управлять рабочими процессами через разные хосты.
Есть ли у кого-нибудь здесь что-нибудь, что мне следует изучить?
Это можно сделать с помощью RunDeck, используя задание для каждого отдельного шага хоста и задание более высокого уровня для координации этих заданий. Хотя у Rundeck нет точно такого уровня координации в пределах рабочий процесс, он позволяет объединить несколько заданий в цепочку, чтобы получить тот же эффект
Например:
Создайте задание для каждого действия «запустить процессX на hostY» (JobA-C). Эти задания будут использовать функцию Node Dispatch с правильным фильтром для применения только к hostY.
создайте задание верхнего уровня с рабочим процессом, который использует ссылки на задания для выполнения заданий A – C по порядку, а не с помощью диспетчеризации узлов.
Выполнение задания верхнего уровня будет проходить по этапам и запускать другие задания по порядку, ожидая завершения каждого из них, прежде чем переходить к следующему этапу.
Вы можете настроить задание верхнего уровня также на «продолжение»: то есть, даже если один шаг завершится неудачей, продолжить выполнение всех последующих шагов.
Вы также можете настроить задания нижнего уровня для параллельной работы с несколькими узлами, при этом задание верхнего уровня по-прежнему будет выполнять только один шаг за раз.
Планировщик Skybot может делать то, что вы хотите - не на 100% уверенный, что он может обрабатывать биты зависимости между хостами, но он довольно надежен, и это первое, что приходит на ум.