Я слышал это pssh
и clusterssh
два популярных, но я подумал, что открою его для обсуждения здесь и посмотрю, какой опыт у сообщества был с этими инструментами? Какие проблемы? Какие-нибудь приличные хаки или варианты использования?
Я использовал pssh, он прост и работает довольно хорошо. Это действительно здорово для быстрых запросов.
Если вы обнаружите, что управляете серверами, я бы предложил что-нибудь более надежное и немного другое (управление конфигурацией), такое как Puppet или CFEngine.
Важно знать, чем вы хотите заниматься. Если вы хотите запустить apt-get update на большом количестве серверов, clusterssh, как сообщается, является простым и эффективным инструментом. См. Статью Кайла Рэнкина о кластерах на сайте журнал Linux.
Если ваша работа на разных серверах потребует логических циклов, размещения, получения или иного взаимодействия с каждым хостом (или, возможно, необходимости взаимодействия с хостом из-за состояния ошибки), такой инструмент, как Ткань (который только что выпустил 1.0) бесценен. Вам, вероятно, больше всего понравится использование Fabric, если вы питонист.
В любом случае, вероятно, ожидается выполнение довольно простых задач на затронутых удаленных серверах, и особенно на любых проблемных хостах. Однако Fabric предоставляет больше возможностей для работы с вариациями.
Одна вещь, которая обычно не обрабатывается должным образом, - это работа с несколькими хостами за хостом шлюза, требующая, чтобы один сначала подключился к шлюзу, а затем оттуда переадресовал порт. Сам ssh делает это довольно просто, и можно установить .ssh/config
файл на что-то вроде
Host gateway
Port 9000
User remoteadmin
HostName datacentre1.com
# mail
LocalForward 9100 192.168.9.11:22
# phones
LocalForward 9101 192.168.9.12:22
Host dc1mail
Port 9100
Host 127.0.0.1
User localadmin
Host dc1phones
Port 9201
Host 127.0.0.1
User localadmin
Чтобы сделать эквивалент ssh dc1mail 'cmd'
&& ssh dc1phones 'cmd'
нужно сначала поднять ssh gateway
. Было бы неплохо, если бы такие инструменты, как clusterssh и Fabric, позволяли делать это как часть своих инструментов. Естественно, вы можете сделать это своими руками.
В Электроинструмент SSH (sshpt) был разработан для параллельного SSH без требуя, чтобы пользователь установил общие ключи SSH. Он превосходит pssh и clusterssh тем, что поддерживает выполнение через sudo, а также может копировать файлы и выполнять их впоследствии (необязательно через sudo). По умолчанию он выводит результаты в формате CSV, но sshpt.py можно использовать как импортируемый модуль Python, так что вы можете использовать его в своих собственных программах (я использовал его как серверную часть для настраиваемого веб-инструмента отчетности на моем сайте). бывший работодатель).
Mussh - хорошая альтернатива, она уже включена во многие дистрибутивы Linux.
Mussh - это сценарий оболочки, который позволяет вам выполнять команду или сценарий по ssh на нескольких хостах с помощью одной команды. По возможности mussh будет использовать ssh-agent и ключи RSA / DSA, чтобы свести к минимуму необходимость вводить пароль более одного раза.
Я использую cssh, и он отлично работает. Вы можете легко отредактировать один и тот же файл на нескольких серверах, а затем проверить только одно окно и изменить, например, значение конкретной переменной. Повторите это для каждого окна, нажмите: wq в vim и вуаля! Работа сделана ;)
Это также отличный инструмент для повышения квалификации.
А также есть dsh для параллельных запусков ssh.
Konsole в KDE и Terminal.app в OS X также имеют возможность превращать одну консоль или вкладку в «управляющий» терминал, который отправляет ввод на несколько вкладок / окон / сеансов.
Раньше я использовал для этого pconsole.
Мой любимый параллельный SSH-инструмент - ПУСШ ... IMO синтаксис более интуитивно понятен, чем любые другие доступные аналогичные пакеты, и на самом деле он не требует установки в виде RPM, компиляции или чего-то еще. Он просто загружается как пара скриптов и просто работает.