Clusterctl
Материал из ISPWiki
Содержание |
Назначение
Утилита имеет два основных предназначения:
- Запуск команды на множестве узлов.
- Управление ролями узлов.
Внимание! Все команды запускаются от рута!
Режимы работы
Возможны три режима работы: указанные команды будут запущены на всех узлах параллельно (в этом случае, результат будет выведен по мере исполнения), последовательно, либо последовательно с заданной задержкой. Задаётся это ключом --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
Примеры управления стартовыми скриптами ролей смотрите в соответствующем разделе выше.
