Поиск по сайту:

4 полезных инструмента для запуска команд на нескольких серверах Linux


В этой статье мы покажем, как одновременно запускать команды на нескольких серверах Linux. Мы объясним, как использовать некоторые широко известные инструменты, предназначенные для одновременного выполнения повторяющихся серий команд на нескольких серверах. Это руководство полезно для системных администраторов, которым обычно приходится ежедневно проверять работоспособность нескольких серверов Linux.

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

Читайте также: как настроить пользовательские соединения SSH для упрощения удаленного доступа

1. PSSH – параллельный 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, укажите файл хостов с помощью опции -h и команды, которые будут выполняться на всех указанных серверах. Флаг -i означает отображение стандартного вывода и стандартной ошибки по завершении выполнения команды на каждом сервере.

parallel-ssh -h hosts "uptime; df -h"

Вам также следует проверить: Как запустить несколько команд на нескольких серверах Linux.

2. Pdsh — утилита параллельной удаленной оболочки

Pdsh — это простой параллельный инструмент удаленной оболочки с открытым исходным кодом для одновременного выполнения команд на нескольких серверах Linux. Он использует скользящее окно потоков для выполнения удаленных команд.

Чтобы установить Pdsh на компьютерах с Linux, выполните соответствующую команду ниже.

sudo apt install pdsh 	#Debian/Ubuntu 
yum install pdsh	        #RHEL/CentOS 
dnf install pdsh              #Fedora 22+

Чтобы запускать команды на нескольких серверах, добавьте серверы в файл хостов, как описано ранее. Затем запустите pdsh, как показано; флаг -w используется для указания файла хостов, а -R используется для указания модуля удаленной команды (доступные модули удаленных команд включают ssh, rsh, exec, по умолчанию — rsh).

Обратите внимание на ^ перед файлом хостов.

pdsh -w ^hosts -R ssh "uptime; df -h"

Если вы не указали удаленную команду для выполнения в командной строке, как показано выше, pdsh запускается в интерактивном режиме, запрашивая команды и запуская их при завершении с возвратом каретки. Для получения дополнительной информации см. справочную страницу pdsh:

man pdsh 

3. КластерСШ

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
OR
clusterssh username@server1 username@server2 username@server3 

Для получения дополнительной информации см. справочную страницу кластеров:

man clusterssh

4. Анзибль

Ansible — это популярный инструмент с открытым исходным кодом для автоматизации ИТ-процессов. Он используется для настройки и управления системами, развертывания приложений и многого другого.

Чтобы установить Ansible в системах Linux, выполните соответствующую команду ниже:

sudo apt install ansible       #Debian/Ubuntu 
yum install ansible            #RHEL/CentOS 
sudo dnf install ansible       #Fedora 22+

После установки ansible вы можете добавить имена хостов или IP-адреса вашего сервера в файл /etc/anasible/hosts.

sudo vim /etc/anasible/hosts

Укажите их в группах, например веб-серверы.

Ex 2: A collection of hosts belonging to the 'webservers' group
[webservers]
139.10.100.147
139.20.40.90
192.30.152.186

Сохраните файл и закройте его.

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

Параметры -a используются для указания аргументов, передаваемых модулю, а флаг -u указывает имя пользователя по умолчанию для подключения к удаленным серверам. через SSH.

Обратите внимание, что инструмент ansible CLI позволяет выполнять не более одной команды.

ansible webservers -a "w " -u admin

Вот и все! В этой статье мы объяснили, как одновременно запускать команды на нескольких удаленных серверах Linux с помощью широко используемых инструментов. Если вам известны какие-либо инструменты для той же цели, которые мы не включили в эту статью, сообщите нам об этом через форму комментариев ниже.