ClusterSSH

Материал из ALT Linux Wiki

Об утилите ClusterSSH

В Windows-домене настройки компьютеров и пользователей, обычно, управляются так: на контроллере домена в редакторе политик задаются параметры и потом они рассылаются всем клиентам. В Linux в OLDAP/Samba такого механизма нет, однако, есть альтернатива по массовой настройке компьютеров через сеть - ClusterSSH.

Фишка утилиты заключается в следующем:

  • вы с помощью SSH объединяете компьютеры в кластер
  • вы вводите команды и массово отправляете их на все компьютеры

Настройка

Конфигурация ClusterSSH прописывается в /etc/clusters или в ~/.csshrc

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

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

clusters = web-cluster ftp-cluster

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

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

clusters = web-cluster ftp-cluster all

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

all = web-cluster ftp-cluster

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

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

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

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

cssh -l alex web-cluster

пользователь alex регистрируется на хостах web1 и web2, входящих в кластер web-cluster. Кроме того, открывается небольшое окно xterm. Всё, что вводится в этом окне, сразу же отображается и выполняется (если это возможно) на всех хостах, включённых в данный кластер.

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

cssh -l alex comp1 comp2 host11

Дополнительные замечания

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

ClusterSSH на практике

Политики пароля

Настройка системы

Правка dconf

Изменение источника обновлений обновлений

Автообновления

ClusterSSH и выключенные компьютеры

Предположим, я таким образом хочу настроить все имеющиеся рабочие станции у работодателя. Но, некоторые из них могут быть выключены. Я могу включить в кластер все пользовательские рабочие станции, послать всем необходимые команды с настройками, но не факт что все они будут включены и все их примут. Как быть в таком случае?

--Petr-akhlamov (обсуждение) 13:26, 11 февраля 2020 (UTC)

Источник: ibm.com