Выполнение скриптов при загрузке гостевой ОС
Для выполнения сложных или специфических настроек ОС гостевой ВМ могут быть использованы пользовательские скрипты, позволяющие автоматизировать процессы.
Запуск скриптов через контекстуализацию
Для ВМ на ОС Windows используются скрипты PowerShell
. В ОС Linux может быть использован любой скриптовый язык, если его интерпретатор установлен в базовом образе ОС, и задана соответствующая строка shebang
.
Для shell-скриптов shebang
не требуется.
ПК СВ поддерживает возможность запуска скриптов после развертывания ВМ, используя механизм контекстуализации. За запуск скриптов отвечают параметры: START_SCRIPT
и INIT_SCRIPTS
.
INIT_SCRIPTS —
используется при запуске более одного скрипта или если имя скрипта не соответствуетinit.sh
. При использованииinit_scripts
файлы скриптов загружаются в хранилище фронтальной машины и подключаются в настройках шаблона ВМ;START_SCRIPT
— поле контекстуализации, заполняемое при создании шаблона ВМ во вкладке Контекст. В отличие от INIT_SCRIPTS, в данное поле вводится текст скрипта, который будет выполнятся при запуске ВМ.
Для хранения скриптов, содержащих конфиденциальную информацию, может быть использован параметр START_SCRIPT_BASE64
. Этот параметр позволяет шифровать скрипты в кодировке base64
. Расшифровка скрипта производится в момент записи временного файла при запуске ВМ.
Пример установки пакета ntpdate
и настройки времени, с использованием bash-скрипта:
Разовый запуск скрипта после развертывания ВМ
В основе механизма запуска скриптов через контекстуализацию лежит система init.d,
что приводит к повторному выполнению всех скриптов при каждом запуске ВМ.
Для реализации разового запуска скрипта необходимо использовать механизмы контроля условия запуска. Одним из вариантов контроля является использование файла-флага.
Пример скрипта с использованием файла-флага:
Данный вариант скрипта проверяет наличие файла-флага. В случае его обнаружения, скрипт прекращает работу. В противном случае, скрипт выполняется до конца и создает файл-флаг.
Такой вариант скриптов позволяет использовать дополнительные возможности контекстуализации и автоматического развертывания ВМ.