63 lines
4.3 KiB
Markdown
63 lines
4.3 KiB
Markdown
---
|
|
title: Справочник ROOT_ API
|
|
description: Стандартизированные переменные окружения и библиотеки ядра.
|
|
weight: 50
|
|
---
|
|
|
|
Каждый Action-скрипт, выполняемый через диспетчер `root`, имеет доступ к стандартизированному набору переменных окружения и Bash-библиотек. Это обеспечивает согласованный API для взаимодействия с инфраструктурой.
|
|
|
|
## Диспетчер `root` {#dispatcher}
|
|
|
|
Команда `root` (находится в `.operator/shared/scripts/run/root`) является основной точкой входа для всей оркестрации. Ее основные обязанности включают:
|
|
|
|
1. **Разрешение контекста**: Поиск целевого [Узла (Node)](/root/glossary#node) и связанных с ним [Уровней (Tiers)](/root/glossary#tier) хранилища.
|
|
2. **Загрузка библиотек**: Подключение основных библиотек ядра (например, `root_core`, `root_sys`).
|
|
3. **Выполнение Action-скриптов**: Поиск и запуск запрошенного действия, с приоритетом локальных переопределений.
|
|
|
|
## Переменные разрешения путей {#paths}
|
|
|
|
Эти переменные устанавливаются диспетчером и доступны всем Action-скриптам.
|
|
|
|
| Переменная | Описание |
|
|
| :--- | :--- |
|
|
| `ROOT_SHARED` | Абсолютный путь к репозиторию [Commons](/root/glossary#commons). |
|
|
| `ROOT_CONFIGS` | Абсолютный путь к основному репозиторию конфигураций. |
|
|
| `ROOT_LOCAL` | Абсолютный путь к директории локального оператора (`.operator/local`). |
|
|
| `ROOT_ACTIONS_SHARED` | Путь к глобальным общим Action-скриптам. |
|
|
| `ROOT_ACTIONS_LOCAL` | Путь к специфичным для узла локальным Action-скриптам. |
|
|
|
|
## Переменные контекста узла {#node-context}
|
|
|
|
Когда действие нацелено на конкретный узел, следующие переменные устанавливаются вспомогательной функцией `root_require_node`.
|
|
|
|
| Переменная | Описание |
|
|
| :--- | :--- |
|
|
| `ROOT_NODE` | Идентификатор целевого узла (например, `daedalus`). |
|
|
| `ROOT_NODE_DIR` | Абсолютный путь к директории конфигурации узла. |
|
|
| `ROOT_TIER1` | Абсолютный путь к директории [Уровня 1](/root/glossary#tier). |
|
|
| `ROOT_TIER2` | Абсолютный путь к директории Уровня 2. |
|
|
| `ROOT_TIER3` | Абсолютный путь к директории Уровня 3. |
|
|
|
|
## Основные функции логирования {#logging}
|
|
|
|
Стандартизированное логирование обеспечивает согласованный вывод всех действий.
|
|
|
|
- `root_log_info`: Стандартный информационный вывод.
|
|
- `root_log_warn`: Предупреждения, требующие внимания.
|
|
- `root_log_error`: Критические ошибки, отправляемые в `stderr`.
|
|
- `root_log_success`: Подтверждение успешного завершения задачи.
|
|
|
|
## Система помощи {#help}
|
|
|
|
Диспетчер предоставляет встроенную систему помощи, парся блок `action_metadata` в начале каждого скрипта. Это позволяет скриптам оставаться декларативными без реализации собственной обработки аргументов командной строки.
|
|
|
|
```bash filename="example-action-metadata"
|
|
action_metadata() {
|
|
cat <<EOF
|
|
description: "Краткое описание действия."
|
|
args:
|
|
- NODE: "Имя целевого узла."
|
|
EOF
|
|
}
|
|
```
|