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

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

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

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

Скрипты ISPsystemLink to Скрипты ISPsystem


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

  • Bitrix Env — установка "1С-Битрикс: Веб-окружение";
  • Bitrix Env Crm — установка "1С-Битрикс: CRM";
  • Django — установка Python-фреймворка Django с веб-серверами uwsgi и Nginx, СУБД MySQL. Скрипт подготавливает окружение с последней версией фреймворка. После установки веб-интерфейс Django доступен по адресу http://<IP-адрес сервера>;
  • ISPmanager Lite — установка панели управления сайтами ispmanager lite с рекомендуемым набором ПО. После установки панель управления доступна по адресу https://<IP-адрес сервера>:1500/ispmgr. Имя пользователя — root, пароль — root-пароль cервера;
  • LAMP — установка веб-серверов Apache и Nginx, СУБД MySQL, ПО PHP и phpMyAdmin. Пароль root-пользователя для MySQL совпадает с root-паролем сервера;
  • LEMP — установка веб-сервера Nginx, СУБД MySQL, ПО PHP и phpMyAdmin. Пароль root-пользователя для MySQL совпадает с root-паролем сервера;
  • Openvpn — установка VPN-сервера OpenVPN. Скрипт настраивает NAT и генерирует клиентский ключ в директории /etc/openvpn/easy-rsa/keys/;
  • Redmine — установка Redmineприложения для управления проектами и задачами. Для работы Redmine устанавливается СУБД MySQL, веб-серверы Nginx и thin. После установки веб-интерфейс Redmine доступен по адресу http://<IP-адрес сервера>. Имя пользователя — admin, пароль — admin или root-пароль сервера (зависит от ОС);
  • Teamspeak — установка сервера для голосового общения Teamspeak и панели управления ts3-cp. После установки панель управления доступна по адресу http://<IP-адрес сервера>. Данные для подключения находятся в файле /root/ts3_login_data;
  • Tomcat — установка контейнера сервлетов Apache Tomcat. После установки сервер доступен по адресу http://<IP адрес сервера>:8080, панель администрирования доступна по адресу http://<IP-адрес>:8080/manager. Имя пользователя — admin, пароль — root-пароль сервера;
  • Wireguard VPN — установка Wireguard VPN. Конфигурация клиента находится в файле /etc/wireguard/client/client.conf. Скрипт не настраивает доступ к VPN;

  • установка Zabbix. Подробнее см. в статье Zabbix:
    • Zabbix server — установка сервера;
    • Zabbix proxy — установка прокси;
    • Zabbix agent2 windows — установка агента для Windows;
    • Zabbix agent2 linux — установка агента для Linux;
  • установка Nagios. Подробнее см. в статье Nagios:
    • Nagios ncpa windows — установка агента для Windows;
    • Nagios ncpa linux — установка агента для Linux;
  • Route Reflector — установка и настройка демона FRR в качестве Route Reflector BGP. Повторный запуск скрипта добавляет "соседей" и позволяет включить поддержку VxLAN. Подробнее см. в статье IP-fabric.

Эти скрипты закрыты для редактирования. Вы можете создать собственные скрипты на их основе через меню Копировать.

Ограничения для скриптов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) — изменить настройки доступа к скрипту;
  • Удалить (только для собственных скриптов).

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

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