Одновременное управление несколькими серверами

В процессе работы мне довольно часто приходиться проделывать одни и те же операции над несколькими серверами, например: вносить изменения в конфигурационные файлы сервисов, менять 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 пригодится и поможет Вам в процессе работы, как помогает мне.
Tags:
ssh

You can't comment this post because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author's username will be hidden by an alias.