Clusterctl

Материал из ISPWiki

Перейти к: навигация, поиск

Содержание

Назначение

Утилита имеет два основных предназначения:

  1. Запуск команды на множестве узлов.
  2. Управление ролями узлов.

Внимание! Все команды запускаются от рута!

Режимы работы

Возможны три режима работы: указанные команды будут запущены на всех узлах параллельно (в этом случае, результат будет выведен по мере исполнения), последовательно, либо последовательно с заданной задержкой. Задаётся это ключом --runmode:

--runmode parallel     Запустить параллельно
--runmode 0            Запустить последовательно без задержки (режим по умолчанию)
--runmode N            Запустить с задержкой в N секунд

Выбор узлов для запуска команды

На каких узлах запустить задаётся ролью, либо прямым указанием узла:

--role HTTP            Запустить на всех узлах, имеющих роль HTTP. Достаточно просто указать имя роли.
--role ALL             Выбрать все роли (по умолчанию)

Также можно ограничить по конкретному узлу:

--node 12.34.56.78     Запустить на узле 12.34.56.78
--node LOCAL           Совершить действие на текущем узле
--node ALL             Запустить на всех узлах (по умолчанию)

Примеры использования

clusterctl --role MASTER
Использовать все узлы, имеющие роль MASTER
clusterctl --node LOCAL
Использовать локальный узел
clusterctl --node LOCAL --role MASTER
Использовать локальный узел, но только если на нём есть роль MASTER
clusterctl --node ALL --role MASTER
Эквивалент clusterctl --role MASTER

Специальные команды

Существует несколько специальных команд:

my_roles          Показать все роли для узла, на котором запущена команда. Будет осуществлён поиск ролей для всех локальных IP.
role_executors    Показать все IP, которые имеют указанную роль.
bind_local_ip     Привязать к интерфейсу, заданному параметром конфигурационного файла "bind_interface" IP-адреса всех веб-серверов локального узла.

Управление ролями

Кроме перечисленных, есть ряд специальных команд для управления стартовыми скриптами ролей:

start             Запустить стартовые скрипты указанной роли и/или узла
stop              Запустить остановочные скрипты указанной роли и/или узла
start_scripts     Показать стартовые скрипты указанной роли и/или узла
stop_scripts      Показать остановочные скрипты указанной роли и/или узла

Например:

clusterctl --role HTTP --node LOCAL start
Запустить скрипты роли HTTP на текущем узле (если такая роль здесь есть)
clusterctl --role HTTP start
Запустить скрипты роли HTTP на всех узлах, где она присутствует
clusterctl --role HTTP --runmode parallel start
Запустить скрипты роли HTTP на всех узлах, где она присутствует в параллельном режиме.

Результат выполнения

Результат выполнения с разных серверов разделяется строками вида:

#clusterctl -- 127.0.0.1 ------------------

Всё, что программа написала в STDOUT и STDERR будет локально отображено в STDOUT и STDERR. Статус выполнения команды отображается отдельной строкой:

#clusterctl Exit with code: 127

Или так:

#clusterctl Exit with signal: 9

Или так:

#clusterctl Stopped with signal: 5

Примеры использования

Запустить на всех серверах "uname -a":

clusterctl --role all "uname -a"

Запустить на всех серверах "uname -a", а затем "date":

clusterctl --role all "uname -a" "date"

Посмотреть процессы Apache на всех HTTP-рабочих:

clusterctl --role HTTP "ps auxw | grep apache"

Узнать роли текущего узла:

clusterctl --role all my_roles

Узнать, какие узлы обрабатывают роль HTTP

clusterctl --role HTTP role_executors

Привязать локальные IP-адреса:

clusterctl bind_local_ip

Использовать альтернативный конфигурационный файл:

clusterctl --conf /other/path/oproxy.conf ...

Справка:

clusterctl --help

Версия:

clusterctl --version

Примеры управления стартовыми скриптами ролей смотрите в соответствующем разделе выше.

Была ли эта информация полезной? Да | Нет
Личные инструменты