VMmanager

Создание скрипта для ВМ

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

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

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

На ОС семейства Linux доступен запуск Shell-скриптов на языке bash, на ОС Windows — Powershell-скриптов.

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

Ограничения для скриптов

Передача пароля в скрипт

Значение встроенной переменной PASS, содержащей пароль root-пользователя, нельзя изменить при запуске скрипта. Используйте собственную переменную или параметр для передачи пароля в скрипт.

Перезагрузка ВМ

Если скрипт содержит команду перезагрузки, то в момент её выполнения запуск скрипта прервётся. После перезагрузки выполнение скрипта не будет продолжено.

Обновление ОС Linux

Если скрипт содержит команду обновления ОС, заблокируйте обновление ПО QEMU Guest Agent. Это ПО обеспечивает выполнение команд на ВМ и обмен информацией между ВМ и узлом кластера. Обновление ПО QEMU Guest Agent может повлиять на взаимодействие платформы с ВМ.

Команда для ОС на основе Red Hat
yum -y update --exclude=qemu-guest-agent
Команда для ОС на основе Debian
apt-mark hold qemu-guest-agent && apt-get update && apt-get -yy upgrade && apt-mark unhold qemu-guest-agent

Если запуск обновления выполняется внешними скриптами:

  1. Перед командами обновления добавьте в ваш скрипт строки: 

    • для ОС на основе Red Hat: 

      yum -y install yum-plugin-versionlock
      yum versionlock qemu-guest-agent
    • для ОС на основе Debian: 

      apt-mark hold qemu-guest-agent || :
      apt-get update
      apt-get -yy dist-upgrade
  2. После команд обновления добавьте в ваш скрипт строки:
    • для ОС на основе Red Hat: 

      yum versionlock delete qemu-guest-agent
    • для ОС на основе Debian: 

      apt-mark unhold qemu-guest-agent || :

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

Чтобы создать собственный скрипт:

  1. Перейдите в раздел Скрипты → вкладка Для виртуальных машин кнопка Создать скрипт.
  2. Укажите Название скрипта.
  3. Выберите Владельца скрипта. Только владелец сможет изменить скрипт.
  4. Выберите, кому разрешён Доступ к образу:
    • Владельцу;
    • Всем.
  5. Если нужно, включите опцию Скрывать содержимое скрипта. Тогда только владелец скрипта и администраторы платформы смогут просматривать код скрипта и создавать его копии.
  6. Укажите Краткое описание скрипта. Оно будет отображаться в списке скриптов.
  7. Укажите Фильтры для выполнения скрипта. Скрипт доступен для запуска на ВМ при совпадении условий всех фильтров. Фильтр Теги ОС является обязательным, остальные — опциональными. Подробнее см. в статье Фильтры для выполнения скриптов. Чтобы добавить больше фильтров, нажмите кнопку Добавить фильтр. Чтобы удалить фильтр, нажмите значок .
  8. Если нужно, добавьте Параметры скрипта:
    1. Нажмите кнопку Добавить параметр.
    2. Укажите Название параметра и его Описание. Если в качестве параметра вы используете имя переменной, её описание добавится автоматически.
    3. Для обязательного параметра включите опцию Сделать обязательным.
    4. Чтобы добавить в скрипт больше параметров, нажмите Добавить еще параметр в скрипт. Чтобы удалить параметр, нажмите значок .
    5. Вы можете задать значения параметра, которые будут предлагаться при запуске скрипта:
      1. В строке с параметром нажмите кнопку Добавить.
      2. Укажите Значение параметра и Описание значения.
      3. Чтобы добавить больше параметров, нажмите Добавить ещё значение. В правой части окна вы можете посмотреть как будет выглядеть форма выбора параметра.
      4. Нажмите кнопку Добавить.
  9. Выберите Тип скрипта:
    • Shell — для ОС семейства Linux;
    • Powershell — для ОС Windows.
  10. Введите код Скрипта в окне редактора. Чтобы развернуть окно редактора на весь экран, нажмите . Для возврата в оконный режим нажмите . В редакторе есть функция автодополнения. Например, если нужно вставить в скрипт имя переменной или параметра, начните ввод и редактор предложит варианты окончания. 

    Внешние переменные и параметры указываются в скрипте в формате ($NAME), где NAME — имя переменной. Например, для записи IP-адреса ВМ в файл можно использовать команду echo ($IP) >> /tmp/ip.txt.
  11. Чтобы после выполнения скрипта на почту пользователю было отправлено письмо:
    1. Нажмите кнопку Добавить в разделе Уведомление на E-mail
    2. Введите Тему письма.
    3. Введите содержание письма в формате HTML в поле Контент. В этом поле вы можете использовать переменные и параметры скрипта. Подробнее о создании шаблонов писем см. Шаблоны писем в скриптах.
    4. Для предварительного просмотра письма нажмите Предпросмотр.
    5. По умолчанию создаётся шаблон письма на русском языке — Письмо для RU. Если нужен шаблон письма на английском языке, нажмите кнопку Добавить письмо для EN. Если какой-либо из шаблонов вам не нужен, нажмите кнопку Удалить письмо для RU/Удалить письмо для EN.
  12. Нажмите кнопку Создать.

Операции со скриптами

Для управления скриптами перейдите в раздел Скрипты → вкладка Для виртуальных машин → выберите скрипт → меню . Возможные действия:

  • Копировать — создать копию скрипта;
  • Редактировать (только для собственных скриптов) — изменить настройки скрипта;
  • Информация (только для скриптов ISPsystem) — изменить настройки доступа к скрипту;
  • Удалить (только для собственных скриптов).

Чтобы запустить скрипты на ВМ, перейдите в раздел Виртуальные машины → выберите ВМ → меню Запустить скрипт → выберите скрипты → введите параметры скриптов → выберите порядок выполнения скриптов в колонке "Приоритет запуска" → Запустить скрипт. Подробнее см. в статье Запуск скриптов на ВМ.

Чтобы остановить запущенный скрипт, перейдите в раздел Виртуальные машины → выберите ВМ → в столбце Состояние нажмите значок рядом с сообщением "Выполняется скрипт" → кнопка Прервать. Вы также можете прервать выполнение скрипта в списке задач ВМ: раздел Виртуальные машины → выберите ВМ → кнопка Параметры → раздел Очередь задач → нажмите значок в задаче "Выполнение скрипта" → кнопка Прервать.