Скрипты позволяют автоматически настраивать виртуальные машины: устанавливать программное обеспечение, изменять конфигурационные файлы и т. д. Скрипт можно:
- выбрать при создании виртуальной машины. Тогда он будет запущен сразу после установки операционной системы;
- запустить на созданной виртуальной машине.
На ОС семейства Linux доступен запуск Shell-скриптов в командных оболочках bash и sh, на ОС Windows — Powershell-скриптов.
Вы можете задать параметры для скрипта. При запуске скрипта значения параметров нужно будет вводить вручную или выбирать из списка. В качестве параметров, которые нужно вводить вручную, можно использовать переменные. Тогда при запуске скрипта в поле ввода параметра будет отображено значение переменной.
Скрипты 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.
Эти скрипты закрыты для редактирования. Вы можете создать собственные скрипты на их основе через меню → Копировать.
Ограничения для скриптов
Командная оболочка
Платформа поддерживает выполнение Shell-cкриптов только в командных оболочках bash и sh. Если в первой строке скрипта указана другая оболочка (например, #!/bin/dash
), то выполнение скрипта завершится с ошибкой. Если первая строка не содержит информацию об оболочке, скрипт будет запущен в оболочке по умолчанию (в большинстве Linux-систем это bash).
Передача пароля в скрипт
Значение встроенной переменной PASS, содержащей пароль root-пользователя, нельзя изменить при запуске скрипта. Используйте собственную переменную или параметр для передачи пароля в скрипт.
Перезагрузка ВМ
Если скрипт содержит команду перезагрузки, то в момент её выполнения запуск скрипта прервётся. После перезагрузки выполнение скрипта не будет продолжено.
Обновление ОС Linux
Если Shell-скрипт содержит команду обновления ОС, заблокируйте обновление ПО QEMU Guest Agent. Это ПО обеспечивает выполнение команд на ВМ и обмен информацией между ВМ и узлом кластера. Обновление ПО QEMU Guest Agent может повлиять на взаимодействие платформы с ВМ.
yum -y update --exclude=qemu-guest-agent
apt-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) — изменить настройки доступа к скрипту;
- Удалить (только для собственных скриптов).
Чтобы запустить скрипты на ВМ, перейдите в раздел Виртуальные машины → выберите ВМ → меню → Запустить скрипт → выберите скрипты → введите параметры скриптов → выберите порядок выполнения скриптов в колонке "Приоритет запуска" → Запустить скрипт. Подробнее см. в статье Запуск скриптов на ВМ.
Чтобы остановить запущенный скрипт, перейдите в раздел Виртуальные машины → выберите ВМ → в столбце Состояние нажмите значок рядом с сообщением "Выполняется скрипт" → кнопка Прервать. Вы также можете прервать выполнение скрипта в списке задач ВМ: раздел Виртуальные машины → выберите ВМ → кнопка Параметры → раздел Очередь задач → нажмите значок
в задаче "Выполнение скрипта" → кнопка Прервать.
Связанные статьи:
- Операции над виртуальными машинами
- Запуск скриптов на ВМ
- Переменные для скриптов
- Фильтры для выполнения скриптов
Статьи из базы знаний: