В этой статье мы покажем, как одновременно запускать команды на нескольких серверах Linux. Мы объясним, как использовать некоторые из широко известных инструментов, предназначенных для выполнения повторяющегося ряда команд одновременно на нескольких серверах. Это руководство полезно для системных администраторов, которым каждый день приходится проверять работоспособность нескольких серверов Linux.
Для целей этой статьи мы предполагаем, что у вас уже настроен SSH для доступа ко всем вашим серверам, а во-вторых, при одновременном доступе к нескольким серверам необходимо установить ключ для доступа без пароля по ключу для SSH на всех ваших серверах Linux. Это, прежде всего, повышает безопасность сервера, а также обеспечивает легкий доступ к нему.
1. PSSH — параллельный SSH
Parallel-SSH — это открытый, простой и удобный в использовании набор инструментов Python на основе командной строки для одновременного выполнения ssh доступа на нескольких Linux-системах. Он содержит ряд инструментов для различных целей, таких как parallel-ssh, parallel-scp, parallel-rsync, parallel-slurp и parallel-nuke (более подробную информацию читайте на странице руководства данного инструмента).
Чтобы установить parallel-ssh, вам нужно сначала установить PIP в вашу Linux-систему.
Затем установите parallel-ssh используя pip следующим образом.
Затем введите имена хостов или IP-адреса удаленного Linux-сервера с SSH-портом в файле с именем hosts (вы можете называть его как хотите):
Сохраните файл и закройте его.
Теперь запустите parallel-ssh, укажите файл hosts с параметром -h и командой(-ами), которая будет выполнена на всех указанных серверах. Флаг -i означает отображение std-вывода и std-ошибки по завершении выполнения команды на каждом сервере.
2. Pdsh — Утилита параллельной удаленной оболочки
Pdsh — это простой инструмент удаленного доступа для одновременного выполнения команд на нескольких серверах Linux. Он использует протокол скользящего окна для выполнения удаленных команд.
Чтобы установить Pdsh на ваши Linux-машины, выполните соответствующую команду ниже:
Чтобы запускать команды одновременно на нескольких серверах, добавьте серверы в файл hosts, как описано ранее. Затем запустите pdsh; флаг -w используется для указания файла hosts, а -R используется для указания удаленного командного модуля (доступные удаленные командные модули включают ssh, rsh, exec, по умолчанию — rsh).
Обратите внимание на символ «^» перед файлом hosts.
Если вы не указали удаленную команду, которая должна быть выполнена в командной строке, как показано выше, pdsh запускается интерактивно, запрашивая команды и запуская их при нажатии enter. Для получения дополнительной информации читайте страницу pdsh man:
3. ClusterSSH
ClusterSSH — это инструмент командной строки для одновременного администрирования кластеров на нескольких серверах. Он запускает консоль администрирования и xterm для всех указанных серверов, позволяя вам выполнять одну и ту же команду на каждом из них.
Чтобы использовать clusterssh, необходимо установить его на локальном компьютере Linux:
Теперь, когда вы его установили, откройте консоль администратора и xterm на удаленных серверах, как с помощью команды приведённой ниже. Чтобы запустить команду на всех серверах, щелкните по строке ввода xterm и введите команду; для управления одним хостом используйте консоль администратора.
Или же:
Для получения дополнительной информации читайте страницу man clusterssh:
4. Ansible
Ansible — это открытый и популярный инструмент для автоматизации ИТ-процессов. Он используется для настройки и управления системами, при развертывании приложений и т. д.
Чтобы установить Ansible в Linux, выполните следующую команду:
После того, как вы его установили, вы можете добавить имена хостов вашего сервера или IP-адреса в файле /etc/anasible/hosts.
Можно указать их в группах, например, webservers:
Сохраните файл и закройте его.
Теперь, чтобы проверить время безотказной работы и пользователей, подключенных ко всем серверам, указанных в веб-сервере группы, в приведенном выше файле конфигурации хостов — просто запустите инструмент командной строки ansible, как показано ниже.
Параметры -a используются для указания аргументов, передаваемых модулю, а флаг -u указывает имя пользователя по умолчанию для подключения к удаленным серверам через SSH.
Обратите внимание на то, что только что созданный инструмент CLI позволяет выполнять не более одной команды.
Вот и все! В этой статье мы объяснили, как одновременно запускать команды на нескольких удаленных серверах Linux с использованием широко известных инструментов.
Спасибо за уделенное время на прочтение статьи о 4 полезных инструментах для одновременного запуска команд на нескольких серверах Linux!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
1 комментарий. Оставить новый
В рамках данной статьи стоит добавить утилиту tmux (synchronize-panes on)