Выполнение скрипта балансировки нагрузки на удаленной машине

#c# #powershell

#c# #powershell

Вопрос:

У меня есть несколько сценариев Powershell, которые я хочу выполнить на 4 удаленных машинах. Я хочу сделать это сбалансированным по нагрузке способом. То есть приложение / инструмент, который я ищу (или должен создать), должен запланировать 1 сценарий на каждой из 4 удаленных машин и ждать. Каждый раз, когда машина завершает выполнение сценария, она должна запланировать для него выполнение другого сценария. Это должно продолжаться до тех пор, пока не будут выполнены все скрипты.

Я готов использовать либо C #, либо Powershell для реализации этого. Может кто-нибудь, пожалуйста, сказать, есть ли простой способ добиться этого? Есть ли какой-либо инструмент или приложение, которые уже доступны для использования?

Любая помощь будет принята с благодарностью.

Комментарии:

1. Почему вы используете термин «балансировка нагрузки» — вы просто хотите запустить скрипт на нескольких серверах

2. Согласен с @manojlds — посмотрите на ultramonkey. org или что-то в этом роде. Сценарии бывают разные.

3. Да, вероятно, термин «балансировка нагрузки» немного вводит в заблуждение. Причина, по которой я использовал это, заключалась в том, чтобы подразумевать, что я хочу запускать скрипты только на машине, которая в данный момент простаивает и завершила последнее выполнение скрипта, тем самым балансируя нагрузку на машины. Невозможно запустить несколько сценариев одновременно.

Ответ №1:

Просто напишите простой контроллер и службу Windows. Установите службу на каждую из ваших 4 машин, а контроллер — на основную машину.

Служба должна проверять контроллер после каждого завершенного выполнения сценария, чтобы узнать, есть ли еще работа. Если есть, возьмите следующий скрипт и выполните. Если нет, перейдите в режим ожидания и продолжайте проверять время от времени.

Дизайн для этого типа не очень сложный.

Комментарии:

1. Спасибо, Крис. Я раньше не писал службу WCF, но я бы наверняка хотел ее написать. Не могли бы вы предоставить немного больше информации об этом?

2. @naspras: я не думал о WCF. Достаточно обычной старой службы Windows.

3. Не могли бы вы дать мне еще несколько советов и помочь? Кроме того, как будет выглядеть контроллер?