Раздел "Скрипты"

В разделе "Скрипты" пользователь может добавить дополнительные индивидуальные наборы команд или инструкции для выполнения на источнике или приемнике на разных этапах миграции.

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

Чтобы добавить скрипт, нужно нажать + Создать скрипт. Во всплывающем окне "Создать скрипт" ввести:

  • Имя — название скрипта для отображения в интерфейсе Комплекса;
  • Описание — (необязательно) комментарий к скрипту;
  • Linux/Windows — в зависимости от ОС поддерживаются разные оболочки командной строки: для Linux — Bash, для Windows — PowerShell.

Затем требуется загрузить файл, содержащий программный код скрипта, и нажать кнопку Сохранить (рисунок 39).

Рисунок 39 — Форма создания скрипта

Скрипт отобразится во вкладке "Скрипты". Можно скопировать ID скрипта, нажав на пиктограмму (квадраты), или отредактировать его, нажав на пиктограмму (карандаш) (рисунок 40).

Рисунок 40 — Вкладка "Скрипты"

Добавление и настройка сценариев

После добавления первого пользовательского скрипта в этом разделе появится вкладка "Сценарии", где можно задать последовательность их исполнения скриптов на ключевых этапах миграции.

Для добавления сценария нужно выполнить следующие действия:

  1. нажать кнопку + Создать сценарий;
  2. в открывшейся форме (рисунок 41) указать имя сценария;

Рисунок 41 — Форма создания сценария

  1. выбрать, где должны исполняться скрипты – на источнике или на приёмнике;
  2. нажать кнопку + Добавить скрипт;
  3. выбрать этап запуска скрипта – "Начало", "Снимки", "Завершение" для источника и "Завершение" для приёмника (рисунок 42);

Рисунок 42 — Выбор этапа запуска сценария

  1. выбрать условия запуска скрипта:
  • Для вкладки "Начало" (когда синхронизация началась) на источнике:
    • Перед первым снимком;
    • После первого снимка;
    • После первичной синхронизации;
  • Для вкладки "Снимки" (когда выполняется режим Flow-синхронизации) на источнике:
    • Перед каждым снимком;
    • После каждого снимка;
    • Перед последним снимком;
    • После последнего снимка;
  • Для вкладки "Завершение" (когда синхронизация завершилась) на источнике:
    • После финальной синхронизации;
  • Для вкладки "Завершение" на приёмнике:
    • Перед перезагрузкой приёмника;
  1. "Скрипт" — выбрать один из ранее созданных пользовательских скриптов;

"Что делать в случае ошибки" — выбрать действие при возникновении ошибки:

  • Продолжить миграции – миграция продолжается без остановки;.
    • Остановить миграции с ошибкой – миграция останавливается с сообщением об ошибке в скрипте;
  • Запустить запасной скрипт – запускается резервный скрипт на случай возникновения ошибок в основном. Для выбора запасного скрипта откроется дополнительное поле выбора.
  1. повторить добавление, если требуется несколько скриптов на одном этапе;
  2. при необходимости нажать пиктограмму (корзина) для удаления скрипта.
  3. нажать кнопку Сохранить.

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

Также предусмотрена возможность процедурно реагировать на коды ошибок, которые могут быть возвращены скриптами.

Примечание – На этапе проверки приёмника скрипты всегда выполняются от имени пользователя root, поэтому использование sudo в скриптах не требуется. На источнике и приёмнике скрипты выполняет mind_agent на всех этапах.

Следует обратить внимание, что при использовании пользовательских скриптов для корректного завершения миграции необходимо, чтобы скрипт завершался с каким-либо кодом возврата. Не поддерживается выполнение "бесконечных" скриптов. В противном случае процесс миграции остановится и не перейдет к следующему этапу.

При создании сценария можно выбрать шаг, на котором требуется автоматически запускать пользовательские скрипты. В зависимости от типа задания и режима синхронизации (с Flow / без Flow), часть шагов и привязанные к этим шагам скрипты могут пропускаться в процессе выполнения сценария (таблица 1).

Примечания к таблице 1:

  • "+" – скрипт будет выполняться на данном шаге для данного типа задания.
  • "-" – скрипт не будет выполняться на данном шаге для данного типа задания.
  • "+/-" – выполнение скрипта зависит от дополнительных условий (см. ниже).
  • Скрипты на шаге 6, 7, 8 будут запускаться только при плановом переключении и доступности источника. При переключении задания с принудительной остановкой репликации скрипты на шагах 6 и 7 выполняться не будут.