Дополнительные возможности

Снятие первичной диагностической информации

После того как задание на миграцию сконфигурировано и запущено, записи о состоянии его текущих процессов заносятся в систему и сохраняются в виде логов. Эти логи содержат подробную информацию о выполнении задания, включая его этапы, действия, ошибки и предупреждения.

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

Объединение в группы

Пользователь может осуществлять групповые действия с обнаруженными на Контроллере машинами. После формирования миграционных заданий из пар машин появляется возможность объединять несколько заданий в Группы с поэтапным выполнением.

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

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

На этапе конфигурации миграционного задания пользователь может добавить дополнительные индивидуальные наборы команд или инструкции для выполнения на источнике или приёмнике.

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

Скрипты загружаются Пользователем в тенант и доступны всем пользователям с возможностью работы в рамках тенанта. Сами скрипты хранятся на Контроллере в зашифрованном виде и могут быть организованы в Сценарий, определяющий порядок их исполнения. Для Linux-систем поддерживаются языки написания скриптов Shell и Bash.

Важно – Все скрипты, добавляемые на Контроллер, проходят процесс цифровой подписи с использованием закрытого ключа на этапе сборки. Проверка подписи осуществляется автоматически при каждом запуске скриптов.

Сценарий — это упорядоченная последовательность исполнения скриптов.

Пользователю предоставляется предварительная схема применения скриптов по шаблону, которую затем можно изменять динамически в зависимости от желаемого этапа выполнения. Таким образом, для удобства использования скриптов предусмотрена возможность запуска скриптов на источнике или приёмнике на разных этапах миграции. Сами этапы миграции разбиты на несколько подэтапов — Начало, Снимки, Завершение.

Начало — подразумевает возможность запускать скрипты в самом начале процесса миграции. Данный подэтап включает возможность запустить скрипты в следующей очерёдности:

  • перед первым снимком;
  • после первого снимка;
  • после первичной синхронизации.

Снимки — подразумевает возможность запускать скрипты в процессе работы механизма snapshot. Данный подэтап включает возможность запустить скрипты в следующей очерёдности:

  • перед каждым снимком;
  • после каждого снимка;
  • перед последним снимком;
  • после последнего снимка.

Завершение — после финальной синхронизации.

Важно – Приведённые выше этапы применимы для источника.

Для приёмника предусмотрена возможность запуска скриптов только на этапе завершения процесса миграции. Для ОС Linux скрипт выполняется перед перезагрузкой из режима работы chroot. При этом сами скрипты как на источнике, так и на приёмнике на всех этапах выполняются Агентом mind_agent, который работает от пользователя с ролью администратора.

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

Пользователь может выбрать одну из трёх реакций:

  • продолжить миграцию;
  • остановить миграцию с ошибкой;
  • запустить запасной скрипт.

Контроллер предоставляет возможность отключения механизма скриптов и сценариев. Данная возможность может использоваться для снижения риска запуска неавторизованных команд на источниках или приёмниках в процессе выполнения заданий миграции или защиты машин.

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

  • подключиться к Контроллеру и в файле /opt/mind/etc/config.yml добавить строку "disablescripts: true" в раздел runmode:
runmode:
debug: false ## Set debug mode
webdebug: false ## Set debug mode for web
research: false ## If false then check operating system support
disablescripts: true
  • перезапустить сервис mind_api:
sudo systemctl restart mind_api.service

После отключения скриптов и сценариев из графического интерфейса Контроллера исчезнет вкладка "Скрипты", а при попытке выполнения запросов REST API, связанных с просмотром, созданием или редактированием скриптов и сценариев, Контроллер выдаст ошибку вида:

{
"error": "Scripts api is disabled",
...
}

Проверка целостности скриптов

При добавлении пользовательских скриптов на Контроллер Комплекса они сохраняются в зашифрованном виде в каталоге /opt/mind/share/userscripts.

Перед запуском задания зашифрованные скрипты передаются на источник и приёмник, где расшифровываются и сохраняются в каталоге /mind/scripts.

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