Скрипты позволяют автоматически настраивать виртуальные машины: устанавливать программное обеспечение, изменять конфигурационные файлы и т. д. На ОС семейства Linux доступен запуск Shell-скриптов в командных оболочках bash и sh, на ОС Windows — Powershell-скриптов. Вы можете задать параметры для скрипта. При запуске скрипта значения параметров нужно будет вводить вручную или выбирать из списка. В качестве параметров, которые нужно вводить вручную, можно использовать переменные. Тогда при запуске скрипта в поле ввода параметра будет отображено значение переменной.
Скрипт можно:
При создании скрипта вы можете выбрать, кому он будет доступен — только вам или всем пользователям платформы.
По умолчанию в платформе доступны скрипты из репозитория ISPsystem: Эти скрипты закрыты для редактирования. Вы можете создать собственные скрипты на их основе через меню Скрипты ISPsystem
→ Копировать.
Ограничения для скриптов
Командная оболочка
Платформа поддерживает выполнение Shell-cкриптов только в командных оболочках bash и sh. Если в первой строке скрипта указана другая оболочка (например, #!/bin/dash), то выполнение скрипта завершится с ошибкой. Если первая строка не содержит информацию об оболочке, скрипт будет запущен в оболочке по умолчанию (в большинстве Linux-систем это bash).
Передача пароля в скрипт
Значение встроенной переменной PASS, содержащей пароль root-пользователя, нельзя изменить при запуске скрипта. Используйте собственную переменную или параметр для передачи пароля в скрипт.
Перезагрузка ВМ
Если скрипт содержит команду перезагрузки, то в момент её выполнения запуск скрипта прервётся. После перезагрузки выполнение скрипта не будет продолжено.
Обновление ОС Linux
Если Shell-скрипт содержит команду обновления ОС, заблокируйте обновление ПО QEMU Guest Agent. Это ПО обеспечивает выполнение команд на ВМ и обмен информацией между ВМ и узлом кластера. Обновление ПО QEMU Guest Agent может повлиять на взаимодействие платформы с ВМ.
yum -y update --exclude=qemu-guest-agentapt-mark hold qemu-guest-agent && apt-get update && apt-get -yy upgrade && apt-mark unhold qemu-guest-agentЕсли запуск обновления выполняется внешними скриптами:
-
Перед командами обновления добавьте в ваш скрипт строки:
-
для ОС на основе 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
-
- После команд обновления добавьте в ваш скрипт строки:
-
для ОС на основе Red Hat:
yum versionlock delete qemu-guest-agent -
для ОС на основе Debian:
apt-mark unhold qemu-guest-agent || :
-
Создание скрипта
Чтобы создать скрипт:
- Перейдите в раздел Скрипты → вкладка Для виртуальных машин → кнопка Создать скрипт.
- Укажите Название скрипта.
- Выберите, кому разрешён Доступ к скрипту:
- Владельцу;
- Всем.
- Укажите Краткое описание скрипта. Оно будет отображаться в списке скриптов.
- Укажите Фильтры для выполнения скрипта. Скрипт доступен для запуска на ВМ при совпадении условий всех фильтров. Фильтр Теги ОС является обязательным, остальные — опциональными. Чтобы добавить больше фильтров, нажмите кнопку Добавить фильтр. Чтобы удалить фильтр, нажмите значок
.
- Если нужно, добавьте Параметры скрипта:
- Нажмите кнопку Добавить параметр.
- Укажите Название параметра и его Описание. Если в качестве параметра вы используете имя переменной, её описание добавится автоматически.
- Для обязательного параметра включите опцию Сделать обязательным.
- Чтобы добавить в скрипт больше параметров, нажмите Добавить еще параметр в скрипт. Чтобы удалить параметр, нажмите значок
.
- Вы можете задать значения параметра, которые будут предлагаться при запуске скрипта:
- Выберите Тип скрипта:
- Shell — для ОС семейства Linux;
- Powershell — для ОС Windows.
-
Введите код Скрипта в окне редактора. Чтобы развернуть окно редактора на весь экран, нажмите
. Для возврата в оконный режим нажмите
. В редакторе есть функция автодополнения. Например, если нужно вставить в скрипт имя переменной или параметра, начните ввод и редактор предложит варианты окончания. Внешние переменные и параметры указываются в скрипте в формате ($NAME), где NAME — имя переменной. Например, для записи IP-адреса ВМ в файл можно использовать команду echo ($IP) >> /tmp/ip.txt.
- Чтобы после выполнения скрипта на почту пользователю было отправлено письмо:
- Нажмите кнопку Добавить в разделе Уведомление на E-mail.
- Введите Тему письма.
- Введите содержание письма в формате HTML в поле Контент. В этом поле вы можете использовать переменные и параметры скрипта. Подробнее о создании шаблонов писем см. Шаблоны писем в скриптах.
- Для предварительного просмотра письма нажмите Предпросмотр.
- По умолчанию создаётся шаблон письма на русском языке — Письмо для RU. Если нужен шаблон письма на английском языке, нажмите кнопку Добавить письмо для EN. Если какой-либо из шаблонов вам не нужен, нажмите кнопку Удалить письмо для RU/Удалить письмо для EN.
- Нажмите кнопку Создать. Скрипт появится в общей таблице скриптов.
Операции со скриптами
Для управления скриптами перейдите в раздел Скрипты → вкладка Для виртуальных машин → выберите скрипт → меню
. Возможные действия:
- Копировать — создать копию скрипта;
- Редактировать (только для собственных скриптов) — изменить настройки скрипта;
- Информация (только для скриптов ISPsystem) — изменить настройки доступа к скрипту;
- Удалить (только для собственных скриптов).
Чтобы запустить скрипты на ВМ, перейдите в раздел Виртуальные машины → выберите ВМ → меню
→ Запустить скрипт → выберите скрипты → введите параметры скриптов → выберите порядок выполнения скриптов в колонке "Приоритет запуска" → Запустить скрипт.
Чтобы остановить запущенный скрипт, перейдите в раздел Виртуальные машины → выберите ВМ → в столбце Состояние нажмите значок
рядом с сообщением "Выполняется скрипт" → кнопка Прервать. Вы также можете прервать выполнение скрипта в списке задач ВМ: раздел Виртуальные машины → выберите ВМ → кнопка Параметры → раздел Очередь задач → нажмите значок
в задаче "Выполнение скрипта" → кнопка Прервать.
