Управление серверами Ubuntu

Управление серверами Ubuntu

Возникла потребность запускать однотипные команды сразу на нескольких серверах
Решений как обычно масса. Выбор пал на pdsh

pdsh - параллельный клиент удаленного управления.

Ставим

sudo apt-get install pdsh

Изменим клиент RCMD по умолчанию для SSH

sudo -s
echo "ssh" > /etc/pdsh/rcmd_default
exit

Теперь необходимо обеспечить без парольный доступ на сервера.
Для этого генерируем сертификат, и рассылаем его по нужным нам серверам

ssh-keygen -q

Везде жамкаем Enter

Копируем сертификат на сервера
Сертификаты лежат в папке .ssh которая находится пользователя

ssh-copy-id -i .ssh/id_rsa.pub virtual@10.10.10.6
...............
ssh-copy-id -i .ssh/id_rsa.pub virtual@10.10.10.50

Проверяем работу на конкретном сервере 10.10.10.8

pdsh -l virtual -w 10.10.10.8 'lsb_release -d'
10.10.10.8: Description: Ubuntu 10.04.4 LTS

Если получаем такую ошибку. Значит пункт "Изменим клиент RCMD по умолчанию для SSH" не выполнен

10.10.10.8: rcmd: socket: Permission denied

Проверяем работу на нескольких серверах 10.10.10.8 и 10.10.10.6

pdsh -l virtual -w 10.10.10.8,10.10.10.6 'lsb_release -d'
10.10.10.8: Description: Ubuntu 10.04.4 LTS
10.10.10.6: Description: Ubuntu 12.04.5 LTS

Немного сократим запись. Создадим файл со списком серверов, перечисленных через запятую

nano servlist.conf
10.10.10.38,10.10.10.11,10.10.10.50,10.10.10.9,10.10.10.8,10.10.10.6

Вызываем команду используя список

pdsh -l virtual -w `cat servlist.conf` 'lsb_release -d'
10.10.10.6: Description: Ubuntu 12.04.5 LTS
10.10.10.38: Description: Ubuntu 16.04.1 LTS
10.10.10.9: Description: Ubuntu 14.04.1 LTS
10.10.10.8: Description: Ubuntu 10.04.4 LTS
10.10.10.11: Description: Ubuntu 14.04.2 LTS
10.10.10.50: Description: Ubuntu 12.04.5 LTS

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

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