Содержание


ClusterSSH - инструмент сетевого администрирования

Comments

ClusterSSH— это утилита для одновременного выполнения команд и внесения изменений в файлы конфигурации на нескольких хостах (серверах) сети, которая может быть полезной не только сетевым администраторам, но и опытным пользователям, управляющим собственной локальной сетью.

Системным администраторам чаще всего приходится иметь дело с большим количеством компьютеров. Но в обширном парке машин всегда можно выделить некоторые группы компьютеров, которые обслуживаются более или менее однообразно, например, группа web-серверов или группа ftp-серверов. Обычно для работы в таких случаях поочерёдно устанавливается ssh-соединение с каждым из серверов и выполняется приблизительно один и тот же набор команд. ClusterSSH несколько облегчает выполнение подобных задач и позволяет сэкономить время и трудозатраты.

ClusterSSH представляет собой Tk/Perl "обёртку", построенную на основе таких стандартных инструментов Linux, как xterm и ssh (OpenSSH). Для работы этой "обёртки" требуются всего лишь две библиотеки языка Perl: perl-tk и X11::Protocol.

Исходный код ClusterSSH можно получить в репозитории GitHub, через зеркало на GitHub или на SourceForge

Конфигурирование ClusterSSH

Для ClusterSSH можно определить конфигурацию в общесистемном файле конфигурации /etc/clusters (что более предпочтительно для корпоративных системных администраторов) или воспользоваться файлом конфигурации, располагающимся в домашнем каталоге пользователя, .csshrc. Для второго варианта преимуществом является то, что несколько пользователей одной системы могут настраивать клиент ClusterSSH по своему усмотрению и экспериментировать с различными версиями конфигурации. В любом случае формат файла конфигурации одинаков, а сам процесс настройки прост и понятен. Определяется кластер (cluster), как группа компьютеров, которыми можно управлять через единый интерфейс. В начале файла, в самом первом разделе перечисляются все требуемые имена кластеров, затем в следующем разделе определяется содержимое каждого вышеперечисленного кластера.

Например, в сети имеются два web-сервера: web1 и web2, которые могут быть объединены в кластер web-cluster, и три файловых сервера: ftp1, ftp2 и ftp3, для которых вполне подойдёт ftp-cluster. Для этого примера конфигурационный файл —/etc/clusters или ~/.csshrc— может выглядеть так, как показано в листинге 1.

Листинг 1. Пример простого файла конфигурации ClusterSSH
clusters = web-cluster ftp-cluster

web-cluster = web1 web2
ftp-cluster = ftp1 ftp2 ftp3

Кроме того, могут быть созданы так называемые мета-кластеры, которые ссылаются на другие, ранее определённые кластеры. Чаще всего создаётся мета-кластер с именем all, включающий содержимое всех отдельно определённых кластеров. Это можно сделать двумя способами, как показано в листинге 2 (в конфигурационном файле для реальной работы должна быть выбрана одна из двух последних строк, разделённых союзом "или").

Листинг 2. Включение в конфигурацию мета-кластера all
clusters = web-cluster ftp-cluster all

web-cluster = web1 web2
ftp-cluster = ftp1 ftp2 ftp3
all = web1 web2 ftp1 ftp2 ftp3
или
all = web-cluster ftp-cluster

Очевидно, что более предпочтительным является второй вариант определения мета-кластера all по вполне понятной причине: независимость от каких бы то ни было изменений в составе включаемых кластеров.

Использование ClusterSSH

Работа с ClusterSSH очень похожа на работу при подключении по обычному ssh-соединению. В командной строке терминала вводится команда

cssh -l <имя_пользователя> <имя_кластера>

После этого заданный пользователь регистрируется в заданном кластере, то есть на всех компьютерах (хостах), входящих в заданный кластер. Разумеется, для этого на всех хостах, перечисленных в кластерах, должен быть соответствующим образом настроен сервис ssh. Таким образом, после ввода и выполнения команды

cssh -l alex web-cluster

пользователь alex регистрируется на хостах web1 и web2, входящих в кластер web-cluster. Кроме того, открывается небольшое окно, показанное на рисунке 1. Это окно консоли ClusterSSH.

Рис.1. Окно консоли ClusterSSH сразу после запуска
Окно консоли ClusterSSH сразу после запуска

Всё, что вводится в этом окне, сразу же отображается и выполняется (если это возможно) на всех хостах, включённых в данный кластер. Для каждого хоста, участвующего в текущем сеансе, открывается отдельное окно xterm, в котором можно наблюдать выполнение команд, а также вводить команды для отдельных хостов. Кроме того, имеется возможность при необходимости зарегистрироваться на компьютерах, не являющихся членами данного кластера, то есть не указанных в конфигурационном файле. Для этого достаточно выполнить простую команду

cssh -l alex comp1 comp2 host11

Меню в окне консоли ClusterSSH позволяет выполнять некоторые полезные операции при работе с различными наборами хостов. На рисунке 2 показан раскрытый пункт меню Hosts, наиболее часто используемый во время сеансов ClusterSSH.

Рис.2. Открытый пункт Hosts в меню консоли ClusterSSH
Открытый пункт Hosts в меню консоли ClusterSSH
Открытый пункт Hosts в меню консоли ClusterSSH

Пункт Retile Windows отвечает за изменение положения и размеров окна консоли. Перевод сеанса в активное состояние осуществляется посредством команды Toggle active state, а для закрытия ненужных неактивных соединений имеется команда Close inactive sessions. Add Host(s) or Cluster(s) представляет собой один из самых важных пунктов, с помощью которого можно добавлять другие хосты и даже другие кластеры для работы в текущем сеансе. В нижней части меню Hosts расположен список хостов, участвующих в данном сеансе. Слева от имени каждого хоста имеется флажок (check box) для управления набором хостов, на которых будут выполняться требуемые команды администрирования.

В пункте меню Send содержится одна команда Hostname, которая просто выводит имя каждого хоста в командной строке, что может оказаться удобным в тех случаях, когда требуется индивидуальная обработка каждого хоста в кластере.

Дополнительные замечания по использованию ClusterSSH

ClusterSSH, как и любой другой инструмент системного администрирования, является потенциально опасным в определённой степени, поэтому применять его следует аккуратно и внимательно. Ошибки и опечатки при работе с кластером web-cluster, например, могут привести к недоступности всех web-серверов в сети. Цена ошибок возрастает из-за того, что они одновременно распространяются сразу на несколько хостов. Прежде чем отправить команду или блок команд в кластер, совсем не лишним будет проверить её ещё и ещё раз, чтобы избежать весьма неприятных последствий.

Заключение

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


Ресурсы для скачивания


Похожие темы


Комментарии

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

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, Open source
ArticleID=946845
ArticleTitle=ClusterSSH - инструмент сетевого администрирования
publish-date=09302013