Linux: параллельное управление серверами – установка и использование pssh

Linux: параллельное управление серверами - установка и использование pssh

Pssh (Parallel SSH) — мощный инструмент для одновременного выполнения команд на множестве Linux серверов через SSH. Он идеально подходит для системных администраторов, управляющих кластерами или группами серверов. В этой статье вы узнаете, как установить pssh и эффективно его использовать.

Установка pssh

Debian/Ubuntu
sudo apt update
sudo apt install pssh -y

CentOS/RHEL
установка EPEL-репозиторий, затем pssh:
sudo yum install epel-release -y
sudo yum install pssh -y

Подготовка к работе

Сохраните список серверов в файле (например, hosts.txt):
echo "user@server1
user@server2
192.168.1.10" > ~/hosts.txt

Настройте SSH-ключи для входа на серверы без пароля:
ssh-keygen -t rsa
ssh-copy-id user@server1

– повторите для каждого хоста из списка

Основные команды pssh

pssh — выполнить команду на нескольких серверах
pssh -h <файл_с_хостами> -l <пользователь> -i "<команда>"
пример:
pssh -h ~/hosts.txt -l root -i "uptime"

pscp — копирование файлов на удаленные серверы
pscp -h <файл_с_хостами> -l <пользователь> <локальный_файл> <удаленный_путь>
пример:
pscp -h ~/hosts.txt -l user /local/path/file.txt /remote/path/

prsync — синхронизация директорий
prsync -h <файл_с_хостами> -l <пользователь> -r <локальная_директория> <удаленный_путь>
пример:
prsync -h ~/hosts.txt -l user -r /local/dir/ /remote/dir/

pnuke — завершение процессов
пример:
pnuke -h ~/hosts.txt -l user "nginx"

pslurp — сбор файлов с серверов
pslurp -h <файл_с_хостами> -l <пользователь> -L <локальная_папка> <удаленный_файл> <локальное_имя>
пример:
pslurp -h ~/hosts.txt -L /backup/ /var/log/app.log app_log

Примеры использования pssh

Обновление всех серверов (Debian/Ubuntu):
pssh -h hosts.txt -i "sudo apt update && sudo apt upgrade -y"

Проверка свободной памяти:
pssh -h hosts.txt -i "free -h"

Массовая перезагрузка:
pssh -h hosts.txt -i "sudo reboot"

Советы и рекомендации

Обработка ошибок: используйте -t <секунды> для таймаута.
Добавьте -o <папка> для сохранения вывода каждого хоста в отдельный файл.

Безопасность:
– всегда используйте SSH-ключи вместо паролей;
– для ввода пароля добавьте -A, но избегайте этого в автоматизированных скриптах.

Альтернативы pssh:
Если pssh недоступен, рассмотрите Ansible, Fabric или ClusterSSH.

Pssh упрощает управление множеством серверов, экономя время на рутинных задачах. Освоив его основные команды, вы сможете эффективно администрировать инфраструктуру любого масштаба.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *