Описание и использование команды

Команда доступна с установкой пакета ecss-utils 14.15.7.24 и выше

Данная команда входит в пакет ecss-utils (устанавливается вместе с пакетом ecss-node).

Данная команда позволяет выполнять перезапуск (restart) сервиса ecss-node (mycelium, mediator, ds, core, pa-sip) на локальном хосте.

Данная команда может быть выполнена оператором вручную, либо (основное предназначение) в паре с командой  ecss-detect-splitавтоматическом режиме).

ecss-restart-nodes - the utility for restarting ecss nodes on a selected host
Использование: ecss-restart-nodes [HOST] [NODE]

Аргументы:

HOST - hostname to restart nodes (hostnames or all) / имя хоста для управления нодами (конкретное имя хоста или all)
NODE - nodes to restart (nodenames or all) / имя ноды, которую нужно перезапустить (mycelium, mediator, ds, core, pa-sip или all)

  • Если HOST имеет значение all, то рестарт нод будет применяться по лексикографическому порядку хостов
  • Если NODE имеет значение all, то рестарт нод будет применяться по рекомендованному порядку нод: mycelium ds core mediator pa-sip
  • NODE может принимать несколько нод через пробел

Доступных ноды для перезапуска:

  • mycelium
  • mediator
  • ds
  • core
  • pa-sip

Примеры выполнения команды:
ecss-restart-nodes  ecss1 ds mediator - restart the nodes ds and mediator on the ecss1 host / перезапуск нод ds и mediator на хосте ecss1
ecss-restart-nodes ecss2 all - restart all nodes on the ecss2 host in the recommended order / перезапуск всех нод в рекомендованном порядке на хосте ecss2
ecss-restart-nodes all pa-sip - restart the node sip1 on the all hosts / перезапуск ноды pa-sip на всех хостах кластера (например, сначала на ecss1, затем на ecss2)

Список поддерживаемых нод (CoCon names):
ds - CoCon name is ds1
pa-sip - CoCon name is sip1
core - CoCon name is core1
mediator - CoCon name is md1
mycelium - CoCon name is mycelium1


Конфигурация команды

Перед началом работы с командой необходимо настроить следующий конфигурационный файл /etc/ecss/ecss-nodes.conf (является общим для ecss-detect-split и ecss-restart-nodes):

/etc/ecss/ecss-nodes.conf
# Конфигурация используется для ecss-restart-nodes и ecss-detect-split
 
# Список имен пользователей узлов кластера (hostname=username)
HOSTS_USERNAMES="ecss1=ecss ecss2=ecss"
 
# Список имен пользователей для подключения к CoCon (hostname=cocon_username)
COCON_USERNAMES="ecss1=admin ecss2=admin"
 
# Список портов для подключения к CoCon (hostname=cocon_port)
COCON_PORTS="ecss1=8023 ecss2=8023"
 
# Таймаут для того, чтобы ноды и сервисы успели подняться (в секундах)
# Значение по умолчанию - 60 секунд
WAIT_STARTUP_TIMEOUT="60"

Для работы  ecss-restart-nodes понадобится указать следующие параметры:

  • HOSTS_USERNAMES - соответствие имени каждого хоста кластера к имени его пользователя (через пробел)


Предварительная настройка перед использованием

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

  1. Убедиться, что хосты находятся в ~/.ssh/known_hosts обоих хостов
  2. При помощи ssh-keygen cформировать  ключи для каждого хоста (будет создан приватный и публичный ключи в ~/.ssh/) (обычно это уже сделано в момент установки кластера)
  3. При помощи ssh-copy-id скопировать публичный ключ на соседний хост


Пример полной настройки

Имеется кластер из двух хостов (команда выполняется на ecss1):

  • ecss1:
    • username: ecss
  • ecss2:
    • username: ecss

Конфигурационный файл для этого примера:

/etc/ecss/ecss-nodes.conf
# Конфигурация используется для ecss-restart-nodes и ecss-detect-split
 
# Список имен пользователей узлов кластера (hostname=username)
HOSTS_USERNAMES="ecss1=ecss ecss2=ecss"
 
# Список имен пользователей для подключения к CoCon (hostname=cocon_username)
COCON_USERNAMES="ecss1=admin ecss2=admin"
 
# Список портов для подключения к CoCon (hostname=cocon_port)
COCON_PORTS="ecss1=8023 ecss2=8023"
 
# Таймаут для того, чтобы ноды и сервисы успели подняться (в секундах)
# Значение по умолчанию - 60 секунд
WAIT_STARTUP_TIMEOUT="60"

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

  • На ecss1 выполнить:
    • ssh-keygen
    • ssh-copy-id ecss@ecss2
  • На ecss2 выполнить:
    • ssh-keygen
    • ssh-copy-id ecss@ecss1

На этом настройка закончена. 

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

  • На ecss1 выполнить:
    • ssh ecss@ecss2
  • На ecss2 выполнить:
    • ssh ecss@ecss1

Пример выполнения команды, подключения к хосту "ecss2":

ecss@ecss1:~$ ssh ecss@ecss2
Welcome to Ubuntu 18.04.6 LTS (GNU/Linux 4.15.0-213-generic x86_64)

. . .

Last login: Mon Dec 16 17:18:24 2024 from 10.0.20.35


Пример лога выполнения команде на хосте ecss1 с выполнением перезапуска всех нод в рекомендованном порядке 

При выполнении может быть запрошен пароль для вашего пользователя


ecss@ecss1:~/$ ecss-restart-nodes all all
Restarting the following nodes in order on the all host(s): ecss-mycelium ecss-ds ecss-core ecss-mediator ecss-pa-sip
 
Host ecss1 is local:
Restarting ecss-mycelium on the host ecss1...
Restarting ecss-ds on the host ecss1...
Restarting ecss-core on the host ecss1...
Restarting ecss-mediator on the host ecss1...
Restarting ecss-pa-sip on the host ecss1...
 
Host ecss2 is remote:
Restarting ecss-mycelium on the host ecss2...
Restarting ecss-ds on the host ecss2...
Restarting ecss-core on the host ecss2...
Restarting ecss-mediator on the host ecss2...
Restarting ecss-pa-sip on the host ecss2...









  • Нет меток