Cluster ssh. Одночасне керування кількома серверами

Моя стаття на habrahabr.ru ——
В процессе работы мне довольно часто приходиться проделывать одни и те же операции над несколькими серверами, например: вносить изменения в конфигурационные файлы сервисов, менять ssh ключи,… и т.д. Такая рутинная работа не приносит много радости, а писать скрипт для автоматизации не всегда удобно и оправдано.

Хочу поделится с сообществом небольшим и очень удобным инструментом для решения такого типа задач — утилитой ClusterSSH.

По своей ClusterSSH является Tk/Perl оболочкой над XTerm и SSH. Принцип работы довольно простой — ClusterSSH открывает централизированное окно администрирования и Xterm для всех указанных хостов. Текст, который введен в окно администрирования, реплицируется во все Xterm окна. Также текст может быть введен непосредственно в необходимое окно XTerm. 

ClusterSSH может работать на Linux, Mac OS X, Solaris, FreeBSD и теоретически должен работать на всех POSIX-совместимых системах.

Существуют готовые пакеты для Debian и Fedora, порт для FreeBSD, а пользователи MacOS могут установить ClusterSSH из MacPorts. Ну и, конечно же, вы можете собрать утилиту из исходников.

Теперь несколько слов о конфигурации ClusterSSH.

ClusterSSH может использовать как глобальный файл конфигурации (/etc/clusters), так и файл, расположенный в домашней директории пользователя (~/.csshrc). Рассмотрим пример.
Например, у меня есть две логические группы серверов. Группа «production» состоит из серверов «prod1.myserver.com» и «prod2.myserver.com», группа «development» состоит из серверов «dev1.myserver.com », «dev2.myserver.com », «dev3.myserver.com ». Также мы создадим метакластер «env», в который включим группу «production» и «development»

В этом случае управляющий файл будет выглядеть следующим образом:

production  prod1.myserver.com prod2.myserver.com
development  dev1.myserver.com dev2.myserver.com dev3.myserver.com 
env   production development

Для получения одновременного управление всеми серверами группы «development» достаточно в терминале ввести команду:

	sudo cssh development

а для доступа ко всем серверам групп «production» и «development»

	sudo cssh env

Несколько слов о меню. 

В пункте «Hosts» нам доступны следующие подпункты:

«Retile Windows» — выполняет автоматическое размещение открытих окон терминалов на рабочем столе;
«Add host(s) or Cluster(s)» — позволяет добавить хосты или кластеры к текущей сессии ClusterSSH;
«Toggle active state» — исключает все активные хосты из перечня массового выполнения
“​Close inactive sessions” — закроет все неактивные окна сессий.

Пункт «Send»:

«Hostname» выводит имя хоста во всех активных окнах терминалов.
Подробнее узнать о ClusterSSH можно тут.
Надеюсь, что ClusterSSH пригодится и поможет Вам в процессе работы, как помогает мне.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *