Скрипты

ℹ️ О системе скриптов

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

Обзор системы скриптов

Система скриптов в INFRAX позволяет:

  • Создавать библиотеку готовых скриптов для типовых задач
  • Выполнять скрипты на одном или нескольких узлах одновременно
  • Запускать скрипты по расписанию через планировщик
  • Отслеживать результаты выполнения скриптов
  • Автоматически создавать тикеты при выполнении определенных условий
✅ Преимущества
  • Централизация: все скрипты хранятся в одном месте
  • Переиспользование: один скрипт можно выполнить на множестве узлов
  • Автоматизация: интеграция с планировщиком задач
  • Контроль: полная история выполнения скриптов

Управление скриптами

Доступ к библиотеке скриптов

Для работы со скриптами перейдите в раздел:

Администрирование → Автоматизации → Скрипты

Создание скрипта

Для создания нового скрипта:

  1. Нажмите кнопку "Добавить скрипт" в правом верхнем углу
  2. В открывшемся окне укажите название скрипта (или оставьте пустым для автоматического именования)
  3. Выберите тип файла из выпадающего списка:
    • PowerShell (.ps1) - для Windows
    • Batch (.bat) - для Windows
    • Bash (.sh) - для Linux
  4. Введите содержимое скрипта одним из способов:
    • Напишите код непосредственно в редакторе
    • Загрузите готовый файл скрипта (поддерживаются .ps1, .bat, .cmd, .sh)
  5. Нажмите кнопку "Сохранить"
ℹ️ Автоопределение типа

При загрузке файла скрипта система автоматически определяет его тип по расширению файла и устанавливает соответствующий язык программирования.

Редактирование скрипта

Для редактирования существующего скрипта:

  1. Кликните на название скрипта в таблице
  2. В открывшемся окне внесите необходимые изменения
  3. При необходимости измените тип файла
  4. Нажмите кнопку "Сохранить"

Скачивание скрипта

Для скачивания скрипта на локальный компьютер:

  1. Откройте скрипт для редактирования
  2. Нажмите кнопку "Скачать файл" (иконка загрузки в правом верхнем углу редактора)
  3. Файл будет сохранен с соответствующим расширением

Удаление скрипта

Для удаления скрипта:

  1. Откройте скрипт для редактирования
  2. Нажмите кнопку "Удалить" в нижнем левом углу окна
  3. Подтвердите удаление
⚠️ Связанные задания

Если скрипт используется в периодических заданиях планировщика, при удалении скрипта будет отображен список всех связанных заданий. Все эти задания будут также удалены вместе со скриптом.

Типы скриптов

INFRAX поддерживает следующие типы скриптов:

PowerShell (.ps1)

Назначение

Скрипты PowerShell используются для автоматизации задач на Windows-серверах и рабочих станциях.

Особенности

  • Полный доступ к .NET Framework и Windows API
  • Управление системными настройками и службами
  • Работа с Active Directory, Exchange, Azure
  • Обработка данных и генерация отчетов

Пример использования

# Получение информации о службах Windows
Get-Service | Where-Object {$_.Status -eq "Running"} | Select-Object Name, DisplayName, Status

Batch (.bat, .cmd)

Назначение

Batch-скрипты - это классические командные файлы Windows для простых задач автоматизации.

Особенности

  • Простой синтаксис, понятный даже начинающим
  • Нативная поддержка всеми версиями Windows
  • Быстрое выполнение простых задач
  • Запуск консольных утилит и программ

Пример использования

@echo off
REM Проверка доступности узлов сети
ping 192.168.1.1 -n 4
ipconfig /all

Bash (.sh)

Назначение

Bash-скрипты используются для автоматизации задач на Linux-серверах и рабочих станциях.

Особенности

  • Стандартная оболочка большинства Linux-дистрибутивов
  • Мощные инструменты обработки текста (grep, sed, awk)
  • Управление процессами и системными ресурсами
  • Работа с файловой системой и сетевыми протоколами

Пример использования

#!/bin/bash
# Проверка использования дискового пространства
df -h
free -m
uptime
ℹ️ Автоматический выбор типа

При выполнении скрипта на узле система автоматически определяет операционную систему узла и использует соответствующий тип скрипта. Для Windows-узлов выполняются PowerShell и Batch скрипты, для Linux-узлов - Bash скрипты.

Выполнение скриптов

Скрипты можно выполнять на узлах сети несколькими способами:

Выполнение через контекстное меню узлов

  1. Перейдите в раздел "Узлы сети"
  2. Выберите один или несколько узлов в дереве
  3. Нажмите правой кнопкой мыши на выбранном узле
  4. В контекстном меню выберите "Выполнить скрипт"
  5. В открывшемся окне выберите нужный скрипт из библиотеки
  6. Подтвердите выполнение

Выполнение через панель действий

  1. В разделе "Узлы сети" выберите узлы
  2. В правой панели действий нажмите кнопку "Выполнить скрипт"
  3. Выберите скрипт из библиотеки
  4. Подтвердите выполнение

Выполнение из карточки тикета

Если тикет связан с узлом сети, вы можете выполнить скрипт непосредственно из карточки тикета:

  1. Откройте тикет, связанный с узлом
  2. В заголовке тикета найдите кнопку с иконкой терминала (выполнить скрипт)
  3. Выберите скрипт из библиотеки
  4. Подтвердите выполнение
⚠️ Требования для выполнения

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

  • Установленный и активный агент INFRAX на узле
  • Права на удаленное подключение к узлу
  • Для корневых узлов требуются права администратора

Асинхронное выполнение

При запуске скрипта создается задача, которая помещается в очередь задач. Это позволяет:

  • Не блокировать интерфейс во время выполнения
  • Выполнять скрипты на большом количестве узлов параллельно
  • Отслеживать прогресс выполнения в реальном времени
  • Просматривать результаты после завершения

Результаты выполнения

Просмотр результатов

Для просмотра результатов выполнения скрипта:

  1. Перейдите в раздел "Администрирование → Автоматизации → История заданий"
  2. Найдите задачу выполнения нужного скрипта
  3. Кликните на задачу для просмотра детальной информации

Информация о выполнении

Для каждого выполнения скрипта доступна следующая информация:

Общая информация

  • Название скрипта: какой скрипт был выполнен
  • Количество узлов: на скольких узлах выполнялся скрипт
  • Время начала: когда началось выполнение
  • Инициатор: кто запустил скрипт (пользователь или планировщик)
  • Статус: успешно завершено или произошла ошибка

Результаты по узлам

Для каждого узла отображается:

  • Статус выполнения: успешно или ошибка
  • Вывод скрипта (stdout): текстовый вывод скрипта
  • Ошибки (stderr): сообщения об ошибках, если есть
  • Код возврата: код завершения скрипта
  • Время выполнения: сколько времени занял скрипт

Статистика выполнения

В истории задачи отображается сводка:

  • Успешно выполнено: количество узлов, где скрипт завершился без ошибок
  • С ошибками: количество узлов, где произошли ошибки
ℹ️ Сохранение результатов

Результаты выполнения скриптов сохраняются в истории задач и доступны для просмотра в любое время. Вы можете анализировать вывод скриптов, выявлять проблемы и оптимизировать свои скрипты на основе полученных данных.

Запуск по расписанию

Скрипты можно автоматически запускать по расписанию через систему планировщика задач.

Создание периодической задачи

Для настройки автоматического выполнения скрипта:

  1. Перейдите в раздел "Администрирование → Автоматизации → Планировщик заданий"
  2. Создайте новую задачу
  3. Выберите тип задачи "Выполнение скрипта"
  4. Выберите скрипт из библиотеки
  5. Укажите узлы, на которых будет выполняться скрипт
  6. Настройте расписание запуска
  7. Сохраните задачу

Автоматическое создание тикетов

При настройке периодической задачи выполнения скрипта вы можете настроить автоматическое создание тикетов:

Условия создания тикетов

  • При ошибке выполнения: если скрипт завершился с ошибкой или не удалось выполнить запрос
  • При выполнении условия: если вывод скрипта соответствует регулярному выражению
  • При невыполнении условия: если вывод скрипта НЕ соответствует регулярному выражению

Автоматическое закрытие тикетов

Вы можете настроить автоматическое закрытие тикетов, когда условие больше не выполняется. Это полезно для мониторинга состояний, которые могут изменяться со временем.

✅ Примеры использования
  • Мониторинг дискового пространства: скрипт проверяет свободное место и создает тикет, если оно меньше 10%
  • Проверка служб: скрипт проверяет запущенные службы и создает тикет, если критическая служба остановлена
  • Проверка резервных копий: скрипт проверяет давность последней резервной копии и создает тикет, если она старше суток
ℹ️ Подробнее о планировщике

Подробную информацию о системе планировщика и настройке расписаний смотрите в разделе Система планировщика (Cron).

Рекомендации

Создание скриптов

Именование

  • Используйте понятные и описательные названия скриптов
  • Указывайте в названии назначение скрипта, например: "Проверка дискового пространства", "Перезапуск службы IIS"

Код скриптов

  • Добавляйте комментарии в код для понимания логики работы
  • Используйте параметры с проверкой входных данных
  • Обрабатывайте возможные ошибки в скрипте
  • Выводите информативные сообщения о ходе выполнения

Тестирование

  • Тестируйте скрипты на тестовых узлах перед использованием в production
  • Проверяйте работу скрипта при различных условиях
  • Убедитесь, что скрипт корректно завершается при ошибках

Безопасность

  • Не храните чувствительные данные (пароли, ключи) непосредственно в скриптах
  • Используйте систему учетных данных INFRAX для авторизации
  • Ограничивайте права доступа к библиотеке скриптов
  • Регулярно проверяйте и обновляйте скрипты

Производительность

  • Оптимизируйте скрипты для быстрого выполнения
  • Избегайте долгих операций, которые могут блокировать выполнение
  • При выполнении на большом количестве узлов учитывайте нагрузку на сеть
  • Используйте таймауты для предотвращения зависания скриптов

Организация библиотеки

  • Группируйте скрипты по назначению (мониторинг, обслуживание, отчеты)
  • Удаляйте устаревшие и неиспользуемые скрипты
  • Документируйте сложные скрипты
  • Создавайте версии скриптов при внесении значительных изменений