Перейти к основному содержимому

CLI

Бинарный файл semaphore — это одновременно и сервер, и полноценный инструмент администрирования. Запустите его без аргументов (или semaphore help), чтобы увидеть список всех команд:

semaphore help

Для большинства административных задач есть отдельная группа команд:

Группа командНазначение
semaphore usersДобавление, изменение, удаление и просмотр пользователей; управление API-токенами и TOTP (2FA).
semaphore projectsЭкспорт и импорт проектов (резервные копии).
semaphore vaultsПерешифрование хранимых секретов и проверка использования ключей шифрования.
semaphore runnerЗапуск в режиме runner'а и регистрация/отмена регистрации runner'ов.
semaphore migrateПрименение или откат миграций базы данных.

У некоторых групп команд есть более короткие псевдонимы: users/user, projects/project, vaults/vault и server/service.

к сведению

Каждая команда, работающая с базой данных (users, projects, vaults, migrate, server), перед выполнением применяет все ожидающие миграции схемы. Сделайте резервную копию базы данных, прежде чем запускать CLI более новой версии Semaphore против существующей базы данных.

Глобальные опции

Эти флаги принимает каждая команда:

ОпцияОписание
--config <path>Путь к файлу конфигурации.
--no-configНе читать файл конфигурации — использовать только переменные окружения.
--log-level <level>Уровень детализации логов: DEBUG, INFO, WARN, ERROR, FATAL или PANIC. По умолчанию берётся из переменной окружения SEMAPHORE_LOG_LEVEL.
--debug-filter <spec>Ограничивает вывод DEBUG определёнными пространствами имён, например 'runner,task_*' или '*,-db'. Действует только при уровне логирования DEBUG. По умолчанию берётся из SEMAPHORE_DEBUG_FILTER.

Как находится файл конфигурации

Если --config не указан, Semaphore ищет файл в следующем порядке и использует первый найденный:

  1. Путь из переменной окружения SEMAPHORE_CONFIG_PATH.
  2. config.json, config.yaml или config.yml в текущем каталоге.
  3. /usr/local/etc/semaphore/config.json (или .yaml / .yml).
  4. /etc/semaphore/config.json (или .yaml / .yml).

Переменные окружения применяются поверх файла, то есть переопределяют значения из файла. С --no-config используются только переменные окружения и значения по умолчанию. Полный список опций см. в разделе Конфигурация.

Версия

Вывести текущую версию.

semaphore version

Интерактивная настройка

Используйте её для первоначальной настройки. Она генерирует секреты, проводит через интерактивный опросник, записывает файл конфигурации, выполняет миграции базы данных и создаёт первого пользователя-администратора.

semaphore setup

Передайте --config <path>, чтобы указать, куда записать файл конфигурации. Без него setup запросит выходной каталог (по умолчанию — текущий каталог) и запишет туда config.json.

Если введённые имя пользователя или email уже существуют, setup оставит существующего пользователя вместо создания нового.

По завершении выводятся команды для запуска сервера, например:

./semaphore server --config /path/to/config.json

Режим сервера

Запустить сервер Semaphore (веб-интерфейс и API). service — псевдоним server.

semaphore server --config /path/to/config.json

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

Режим runner'а

Запустить Semaphore как runner для выполнения задач. Полный набор подкоманд (setup, register, start, unregister) см. в разделе Runner'ы.

semaphore runner start --config /path/to/runner-config.json

Миграция базы данных

Привести схему базы данных в актуальное состояние. О применении или откате до конкретной версии см. в разделе Миграции базы данных.

semaphore migrate --config /path/to/config.json