1. PSSH – Parallel SSH
Parallel-SSH – это открытый, простой и удобный в использовании набор инструментов Python на основе командной строки для одновременного выполнения ssh на ряде Linux-систем.
Он содержит ряд инструментов для различных целей, таких как Parallel-ssh, Parallel-scp, parallel-rsync, parallel-slurp и parallel-nuke (более подробную информацию читайте на странице руководства конкретного инструмента).
Чтобы установить parallel-ssh, вам нужно сначала установить PIP в вашу Linux-систему.
$ sudo apt install python-pip python-setuptools #Debian/Ubuntu # yum install python-pip python-setuptools #RHEL/CentOS # dnf install python-pip python-setuptools #Fedora 22+
Затем установите parallel-ssh с помощью pip следующим образом.
$ sudo pip install parallel-ssh
Затем введите имена хостов или IP-адреса удаленного Linux-сервера с SSH-портом в файле с именем hosts (вы можете называть его как хотите):
$ vim hosts
192.168.0.10:22 192.168.0.11:22 192.168.0.12:22
Сохраните файл и закройте его.
Теперь запустите parallel-ssh, укажите файл hosts с параметром -h и командой (-ами), которая будет выполнена на всех указанных серверах.
Флаг -i означает отображение std-вывода и std-ошибки по завершении выполнения команды на каждом сервере.
$ parallel-ssh -h hosts "uptime; df -h"
2. Pdsh – Утилита параллельного удаленного шелла
Pdsh – это простой и бесплатный инструмент параллельной удаленной оболочки для одновременного выполнения команд на нескольких серверах Linux.
Он использует скользящее окно потоков для выполнения удаленных команд.
Чтобы установить Pdsh на ваши Linux-машины, выполните соответствующую команду ниже.
$ sudo apt install pdsh #Debian/Ubuntu # yum install pdsh #RHEL/CentOS # dnf install pdsh #Fedora 22+
Чтобы запускать команды на нескольких серверах, добавьте серверы в файл hosts, как описано ранее.
Затем запустите pdsh; флаг -w используется для указания файла hosts, а -R используется для указания удаленного командного модуля (доступные удаленные командные модули включают ssh, rsh, exec, по умолчанию – rsh).
Обратите внимание на символ ^ перед файлом hosts.
$ pdsh -w ^hosts -R ssh "uptime; df -h"
Если вы не указали удаленную команду, которая должна быть выполнена в командной строке, как показано выше, pdsh запускается интерактивно, запрашивая команды и запуская их при завершении возвратом
Для получения дополнительной информации см. Страницу pdsh man:
$ man pdsh
3. ClusterSSH
ClusterSSH – это инструмент командной строки для одновременного администрирования кластеров с несколькими серверами.
Он запускает консоль администрирования и xterm для всех указанных серверов, позволяя вам выполнять одну и ту же команду для всех из них.
Чтобы использовать clusterssh, начните с установки на локальном компьютере Linux, как показано далее
$ sudo apt install clusterssh #Debian/Ubuntu # yum install clusterssh #RHEL/CentOS $ sudo dnf install clusterssh #Fedora 22+
Теперь, когда вы его установили, сразу откройте консоль администратора и xterm на удаленных серверах, как показано ниже.
Чтобы запустить команду на всех серверах, щелкните по строке ввода xterm и введите команду; для управления одним хостом используйте консоль администратора.
$ clusterssh linode cserver contabo или $ clusterssh username@server1 username@server2 username@server3
Для получения дополнительной информации см. Страницу man clusterssh:
$ man clusterssh
4. Ansible
Про Ansible мы уже написали см. тут:
Установить Ansible в Fedora через DNF из пакетов RPM
Как установить Ansible на Ubuntu 18.04 (Bionic)
Как просмотреть доступные группы пакетов в Linux