Развертывание и выполнение программ на распределенных удаленных машинах - PullRequest
1 голос
/ 29 июня 2011

Я занимаюсь разработкой распределенной программы, которая будет работать на компьютерах Amazon EC2.

В идеале я бы разработал на своей локальной машине, запустил скрипт для развертывания источника на удаленных машинах ( Все Linux-машины, на которых у меня есть доступ по ssh ), запустил бы команду компиляции на каждом из удаленных машины, а затем запускают программу на каждом экземпляре, имея контроль над запущенными программами ( возможность их приостановить ).

Мне интересно, существуют ли уже какие-либо инструменты для такой задачи (кроме использования MPI, но это для другого вопроса), и если нет, то какие рекомендации следует использовать.

Ответы [ 2 ]

2 голосов
/ 29 июня 2011

Существует множество альтернатив в зависимости от масштаба развертывания.Интересно, что я лично не пробовал это glu .Существует также хорошо известное семейство инструментов управления конфигурациями puppet, chef, которые имеют некоторые компоненты управления процессами.

1 голос
/ 01 июля 2011

Разве вы не можете написать Perl?

Net :: OpenSSH :: Parallel позволяет писать сценарии, которые выполняют команды на нескольких серверах параллельно через SSH довольно легко:

#!/usr/bin/perl

use Net::OpenSSH::Parallel;

my @hosts = (...);

my $pssh = Net::OpenSSH::Parallel->new;
$pssh->add_host($_) for @hosts;

$pssh->all(rsync_put => '/local/path', '/server/path');
$pssh->all(cmd => 'cd /server/path && make');
$pssh->all(join => '*'); # waits for all the servers to reach this point.
$pssh->all(cmd => 'cd /server/path && ./your_program');

$pssh->run;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...