3.0 KiB
3.0 KiB
title, description, weight
| title | description | weight |
|---|---|---|
| Разработка Action-скриптов | Разработка атомарных задач автоматизации в рамках общих модулей. | 30 |
Action-скрипты — это атомарные задачи автоматизации. Следуя философии "Stupid Action" («Глупое действие»), они должны оставаться декларативными и полагаться на библиотеку для выполнения сложных операций.
Создание нового Action-скрипта
{{% steps %}}
Шаг 1: Создание файла скрипта
Поместите ваш скрипт в scripts/actions/{group}/{name}. Не используйте расширения файлов.
Шаг 2: Реализация метаданных
Каждый Action-скрипт должен предоставлять описание и список аргументов для системы справки (help system).
action_metadata() {
cat <<EOF
description: "Краткое описание задачи."
args:
- NODE: "Имя узла"
- PARAM: "Пользовательский параметр"
EOF
}
Шаг 3: Инициализация контекста
Используйте вспомогательную функцию root_require_node для настройки окружения. Это должно быть первым функциональным шагом в вашем скрипте.
root_require_node "${1:-}"
shift
Шаг 4: Использование модульных функций
Выполняйте операции, используя библиотечные функции root_*. Полагайтесь на переменные окружения ROOT_ для всех путей.
root_log_info "Обработка узла $ROOT_NODE"
root_sys_restart_service "my-service"
{{% /steps %}}
Пространства имен библиотек
Action-скрипты имеют доступ к следующим модулям:
root_core_*: Логирование и уведомления в Telegram.root_init_*: Декларативная инициализация сервисов и управление пакетами.root_sys_*: Управление systemd и файлами юнитов.root_template_*: Рендеринг на основе envsubst и внедрение конфигураций.root_validate_*: Проверка ввода, файлов и ОС.
См. также: