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

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

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

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

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

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


Командная оболочкаLink to Командная оболочка

Платформа поддерживает выполнение Shell-cкриптов только в командных оболочках bash и sh. Если в первой строке скрипта указана другая оболочка (например, #!/bin/dash), то выполнение скрипта завершится с ошибкой. Если первая строка не содержит информацию об оболочке, скрипт будет запущен в оболочке по умолчанию (в большинстве Linux-систем это bash).

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

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

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

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

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

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

Команда для ОС на основе Red Hat

yum -y update --exclude=qemu-guest-agent
BASH

Команда для ОС на основе Debian

apt-mark hold qemu-guest-agent && apt-get update && apt-get -yy upgrade && apt-mark unhold qemu-guest-agent
BASH

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

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

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

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

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

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

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

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


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

  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. Нажмите кнопку Создать.

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


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

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

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

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