Я использую Windows для соединения через SSH с моими машинами Amazon EC2.
Существует ли инструмент как Кластерный SSH для Windows?
Моя цель состоит в том, что я могу соединиться через SSH с несколькими машинами EC2 и отправить каждой машине ту же команду одновременно, т.е. запись команды однажды, и это должно быть, отправляют к нескольким машинам EC2. Кроме того, я хотел бы открыть несколько соединений с машинами EC2 в случае повреждения соединений.
Как это может быть достигнуто с помощью Windows в качестве хоста? Машины EC2 используют Ubuntu.
Похоже, вы просите об управлении конфигурацией / оркестровке. Существует ряд различных механизмов оркестровки.
Наиболее "AWS" решение - использовать OpsWorks, который работает с chef. Вы можете написать рецепт (который может включать одну или несколько команд оболочки) и выполнять его в нескольких экземплярах вручную или всякий раз, когда происходит определенное событие, такое как запуск экземпляра или развертывание приложения.
Другой альтернативой является ansible , который аналогичен, за исключением того, что работает исключительно через SSH.
Я обычно делаю это в 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
Вместо того, чтобы администрировать кластер с клиентского компьютера Windows (возможно, с ненадежным соединением), я бы рекомендовал подключиться к «главному узлу», с которого вы будете отправлять команды подчиненным узлам.
С этого главного узла у вас есть несколько вариантов для отправки распределенных команд оболочки ( clusterssh
,
dsh
, pdsh
, ... чтобы назвать несколько, но есть много других )
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
. Убедитесь, что вы используете закрытый ключ, который есть в вашей связке ключей, или ключ без ключевой фразы, чтобы вам не предлагалось ввести кодовую фразу для каждого хоста.