docs: Update docs for the correctness (#13)

This commit is contained in:
deytenit authored and GitHub committed 2026-04-15 00:48:06 +03:00
1 parent 8dba55272c
commit 51a783f93a
60 files changed
+2456 -380

No files matched your search

@@ -0,0 +1,67 @@
---
title: Разработка Action-скриптов
description: Разработка атомарных задач автоматизации в рамках общих модулей.
weight: 30
---
[Action-скрипты](/root/glossary#action) — это атомарные задачи автоматизации. Следуя философии "Stupid Action" («Глупое действие»), они должны оставаться декларативными и полагаться на библиотеку для выполнения сложных операций.
## Создание нового Action-скрипта {#create}
{{% steps %}}
### Шаг 1: Создание файла скрипта
Поместите ваш скрипт в `scripts/actions/{group}/{name}`. Не используйте расширения файлов.
### Шаг 2: Реализация метаданных
Каждый Action-скрипт должен предоставлять описание и список аргументов для системы справки (help system).
```bash filename="scripts/actions/utils/my-action"
action_metadata() {
cat <<EOF
description: "Краткое описание задачи."
args:
- NODE: "Имя узла"
- PARAM: "Пользовательский параметр"
EOF
}
```
### Шаг 3: Инициализация контекста
Используйте вспомогательную функцию `root_require_node` для настройки окружения. Это должно быть первым функциональным шагом в вашем скрипте.
```bash filename="scripts/actions/utils/my-action"
root_require_node "${1:-}"
shift
```
### Шаг 4: Использование модульных функций
Выполняйте операции, используя библиотечные функции `root_*`. Полагайтесь на переменные окружения `ROOT_` для всех путей.
```bash filename="scripts/actions/utils/my-action"
root_log_info "Обработка узла $ROOT_NODE"
root_sys_restart_service "my-service"
```
{{% /steps %}}
## Пространства имен библиотек {#libraries}
Action-скрипты имеют доступ к следующим модулям:
- `root_core_*`: Логирование и уведомления в Telegram.
- `root_init_*`: Декларативная инициализация сервисов и управление пакетами.
- `root_sys_*`: Управление systemd и файлами юнитов.
- `root_template_*`: Рендеринг на основе envsubst и внедрение конфигураций.
- `root_validate_*`: Проверка ввода, файлов и ОС.
---
**См. также:**
- [Справочник: Справочник ROOT_ API](/root/reference/root-api)
- [Концепция: Архитектура инфраструктуры](/root/concepts/architecture)