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

Сейчас я покажу на практике как это выглядит.

ekzorchik@srv-serv:~$ apt-cache search clusterssh | head -n 1

clusterssh – administer multiple ssh or rsh shells simultaneously

Для разбора как работает данная утилита мне понадобиться еще 3 системы на оси Ubuntu 12.04.5 Server amd64 помимо основной (мой рабочий ноутбук: HP dv6-3080er – Ubuntu 12.04.5 Desktop amd64)

keiz@dv6:~$ ifconfig wlan0 | head -n 2 | grep ‘inet addr’

inet addr:192.168.1.48 Bcast:192.168.1.255 Mask:255.255.255.0

Ресурсы у систем одинаковые: CPU = 2,RAM=2,HDD=20Gb

  • srv-cluster1 192.168.1.52
  • srv-cluster2 192.168.1.53
  • srv-cluster3 192.168.1.54

На данных системах установлен пакет: openssh-server (sudo apt-get install openssh-server)

В файл /etc/hosts вношу упоминания по 3 системам, просто у меня пока нет настроенного DNS сервиса:

keiz@dv6:~$ sudo nano /etc/hosts

192.168.1.52 srv-cluster1

192.168.1.53 srv-cluster2

192.168.1.54 srv-cluster3

Устанавливаю утилиту clusterssh на основную систему:

keiz@dv6:~$ sudo apt-get install clusterssh -y

keiz@dv6:~$ cssh -v

Version: 4.00_11

Теперь настраиваю кластер:

keiz@dv6:~$ sudo nano /etc/clusters

clusters = polygon

polygon = srv-cluster1 srv-cluster2 srv-cluster3

Подключаюсь к созданному кластеру: (если подключение происходит впервые, то понадобиться ответить положительно на вопрос что да действительно хотим подключиться)

keiz@dv6:~$ sudo cssh -l ekzorchik polygon

Подключаюсь к созданному кластеру систем polygon

 

Инициализировав подключение к узлам кластера передо мной открылись 3 консоли где мне предлагается согласиться на предмет получения публичного ключа ssh для авторизации на серверах(е), этого бы не было если бы было бы настроена авторизация на основе ключей, как в заметке:

Поэтому сперва настрою аутентификацю по ключам:

keiz@dv6:~$ ssh-keygen -t rsa -b 2048

Копирую публичный ключ на ноды srv-cluster[1,2,3]:

keiz@dv6:~$ cat ~/.ssh/id_rsa.pub | ssh -p 22 ekzorchik@srv-cluster1 ‘umask 077;test -d .ssh | mkdir .ssh ; cat >> .ssh/authorized_keys’

keiz@dv6:~$ cat ~/.ssh/id_rsa.pub | ssh -p 22 ekzorchik@srv-cluster2 ‘umask 077;test -d .ssh | mkdir .ssh ; cat >> .ssh/authorized_keys’

keiz@dv6:~$ cat ~/.ssh/id_rsa.pub | ssh -p 22 ekzorchik@srv-cluster3 ‘umask 077;test -d .ssh | mkdir .ssh ; cat >> .ssh/authorized_keys’

а теперь снова ввожу команду: – и подключаюсь введя только пароль на учетную запись (хотя вроде этого не должно было быть, а не должно, я же не поправил полностью настройки по указанной заметки выше.

keiz@dv6:~$ sudo cssh -l ekzorchik polygon

Что теперь. Теперь я могу устанавливать, просматривать, редактировать файлы как будто я нахожусь за одной консолью единовременно, вот к примеру установлю пакет наглядного наблюдения за ресурсами: (если выделить какую-то одну консоль, то она станет в данный момент активной и работа будет идти только с ней, если же пакет уже где-то установлен то ничего страшного он будет установлен только там где его нет)

sudo apt-get install htop -y

Отобразить статус работы ресурсов систем(ы):

htop

Наблюдаем за системами всеми и сразу

  • Чтобы вернуться в единое управление всеми подключенными сеансами, то просто находим окно и щелкаем по нему сделав фокус этого окна активным и теперь просто вводим команды:

Окно фокуса для администрирования сессиями кластера

Но как видно — это не совсем кластер, это просто мультиинтерактивное видеонаблюдение за работой с визуализацией открытых консолей и действий производимых на удаленных системах.

Если нужно закрыть какое-либо подключение, то можно переключиться в определенную консоль и набрать exit или sudo poweroff или в окне выше CSSH [3]”, где [3] – число систем в кластере к которым осуществлено подключение перейти по меню: Hostsснимаем отметку с хоста для исключения из сеанса единого исполнения команд, а если же надо закрыть все активные подключения к кластеру, то Hosts – Toogle active statе или еще раз чтобы вернуть.

Также в рассматриваемых примерах у меня везде одна учетная запись — ekzorchik. Просто я стараюсь все сервисы поднимать используя ее, а потому у Вас же может быть различные учетные данные и использование данной утилиты, как clusterssh не подойдет, а может и подойдет, справка Вам в помощь. Мне же понравилась та часть разобранной работы с данной утилитой. Потому, как в дальнейшем я уже внедрив ее сделаю все как надо.

DNS + DHCP = dnsmasq

Системы развернуты на ESXi посредством подготовки систем через pupplet (в скором времени я выложу подробную заметку, как этого добиться)

Если очень хочется, то можно создать единые настройки соединения которые будут применены к подключаемым узлам кластера:

keiz@dv6:~$ sudo su - -c "cssh -u > ~/.csshrc"

Есть еще замечание при работе с данной утилитой, если в качестве центра управления кластером используется не Desktop версия системы, а Server (т. е. Без установленной графической оболочки), то попытка подключения к нодам кластера заканчивается ошибкой:

ekzorchik@srv-serv:~$ sudo cssh -l ekzorchik polygon

sudo: unable to resolve host srv-serv

Can’t find DISPLAY — guessing `unix:0′ at /usr/share/perl5/App/ClusterSSH.pm line 2113

Can’t connect to display `unix:0′: No such file or directory at /usr/share/perl5/X11/Protocol.pm line 2264

ekzorchik@srv-serv:~$ DISPLAY=:0.0

ekzorchik@srv-serv:~$ export DISPLAY

ekzorchik@srv-serv:~$ echo $DISPLAY

:0.0

ekzorchik@srv-serv:~$ sudo cssh -l ekzorchik polygon sudo: unable to resolve host srv-serv

Can’t connect to display `unix:0′: No such file or directory at /usr/share/perl5/X11/Protocol.pm line 2264

ekzorchik@srv-serv:~$ grep X /etc/ssh/sshd_config

X11Forwarding yes

X11DisplayOffset 10

Почему так и что надо для этого я пока не разобрал, может как-нибудь в дальнейшем разберусь. А пока на этом заканчиваю разбор работы с утилитой clusterssh, по мне это больше как для показухи, что мол смотрите как я могу управлять всеми обслуживаемыми системами из одного места, запустив какое-либо средством на подобии htop чтобы воочию наблюдать с одного места за системами. Возможно я просто пока не вижу в этом какой либо надобности. Но эта заметка просто задел на будующее, до встречи с уважением автор блога — ekzorchik.

От ekzorchik

Всем хорошего дня, меня зовут Александр. Я под ником - ekzorchik, являюсь автором всех написанных, разобранных заметок. Большинство вещей с которыми мне приходиться разбираться, как на работе, так и дома выложены на моем блоге в виде пошаговых инструкции. По сути блог - это шпаргалка онлайн. Каждая новая работа где мне случалось работать вносила новые знания и нюансы работы и соответственно я расписываю как сделать/решить ту или иную задачу. Это очень помогает. Когда сам разбираешь задачу, стараешься ее приподнести в виде структурированной заметки чтобы было все наглядно и просто, то процесс усвоения идет в гору. Также прошу на https://win.ekzorchik.ru https://lin.ekzorchik.ru https://net.ekzorchik.ru https://voip.ekzorchik.ru https;//home.ekzorchik.ru