Files
ermnvldmr.com/services/docs/content/ru/root/guides/action-development.md
T

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_*: Проверка ввода, файлов и ОС.

См. также: