У меня есть x серверов, к которым я могу подключиться по SSH с помощью паролей. Если мне нужно подключиться только к 1, я сделаю ssh root@IPaddress. Затем он запросит мой пароль, и после аутентификации я смогу выполнять там команды.
Что делать, если у меня есть x серверов, все они одинаковы, и я хочу выполнить одну и ту же команду на каждом из них? Как я могу сделать это с помощью одной или двух команд?
решение1
Похоже, вам нужен инструмент подготовки, такой какansible,солончак,шеф-повариликукольный.
Ansible работает очень похоже на то, что вам нужно, вы запускаете его локально, и он подключается к удаленным серверам по sshs для выполнения команд (нет необходимости устанавливать агента на удаленных серверах, как другие продукты, перечисленные выше). Например, имея список серверов, /etc/ansible/hosts
вы можете запустить ansible all -a "/bin/echo hello"
для выполнения указанной команды на всех серверах. Полное руководствоздесь.
Но в дополнение к этому вы можете начать создавать сборники полезных команд, которые позволят вам повторно запускать их на хостах в будущем и работать над автоматизацией управления вашей инфраструктурой.
В качестве альтернативы вы можете использовать такие команды, какпсшдля параллельного выполнения пакетных команд или с использованиемсинхронизировать-панелифункция tmux для интерактивного запуска команд на нескольких хостах.
решение2
- Выполнение одной и той же команды(команд) на нескольких хостах
Что делать, если у меня есть x серверов, все они одинаковы, и я хочу выполнить одну и ту же команду на каждом из них? Как я могу сделать это с помощью одной или двух команд?
Вы можете запустить скрипт, который получает в качестве параметра имя хоста, и выполнить те же команды для имени хоста в параметре
- Подключение через SSH к нескольким серверам
Настоятельно рекомендуется использовать пару ключей SSH, тогда SSH-связь будет беспарольной.
видетьэтот ответ
решение3
Вы можете использоватьMobaXtremкак SSH-клиент, он имеет функцию MultiExec, которая позволяет выполнять одни и те же команды на всех открытых терминалах.