Отправка команд одновременно к нескольким экземплярам Amazon EC2

Я использую Windows для соединения через SSH с моими машинами Amazon EC2.

Существует ли инструмент как Кластерный SSH для Windows?

Моя цель состоит в том, что я могу соединиться через SSH с несколькими машинами EC2 и отправить каждой машине ту же команду одновременно, т.е. запись команды однажды, и это должно быть, отправляют к нескольким машинам EC2. Кроме того, я хотел бы открыть несколько соединений с машинами EC2 в случае повреждения соединений.

Как это может быть достигнуто с помощью Windows в качестве хоста? Машины EC2 используют Ubuntu.

0
задан 12 October 2014 в 14:15
4 ответа

Похоже, вы просите об управлении конфигурацией / оркестровке. Существует ряд различных механизмов оркестровки.

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

Другой альтернативой является ansible , который аналогичен, за исключением того, что работает исключительно через SSH.

0
ответ дан 24 November 2019 в 09:00

Я обычно делаю это в Linux, используя tmux и синхронизирующие панели, с опцией

:setw synchronize-panes

См. Также: http://blog.sanctum.geek.nz/sync-tmux- panes /

tmux - это терминальный мультиплексор, поэтому вы также можете использовать его для открытия нескольких подключений к одному и тому же компьютеру, как вы и просили.

Согласно этому потоку, вы сможете установить tmux на cygwin (есть также другие интересные варианты в потоке): https://stackoverflow.com/questions/5473384/terminal-multiplexer-for-microsoft-windows-installers-for-gnu-screen-or-tmux

0
ответ дан 24 November 2019 в 09:00

Вместо того, чтобы администрировать кластер с клиентского компьютера Windows (возможно, с ненадежным соединением), я бы рекомендовал подключиться к «главному узлу», с которого вы будете отправлять команды подчиненным узлам.

С этого главного узла у вас есть несколько вариантов для отправки распределенных команд оболочки ( clusterssh , dsh , pdsh , ... чтобы назвать несколько, но есть много других )

0
ответ дан 24 November 2019 в 09:00

ssh всегда проще всего из командной строки. Для Windows используйте cygwin.

for i in 54.76.246.226 54.77.110.237 54.77.60.144; do ssh -i ~/.ssh/id_rsa root@$i 'uname -a'; done

или для большого количества серверов

for i in `echo hosts.txt`; do ssh -i ~/.ssh/id_rsa root@$i 'uname -a'; done

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

0
ответ дан 24 November 2019 в 09:00

Теги

Похожие вопросы