VMmanager
Ваше мнение имеет значение!
Примите участие в опросе и помогите нам сделать продукты и сервисы ISPsystem еще лучше!
Пройти опрос

Шаблоны писем в скриптах

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

Такой подход удобно использовать при предоставлении SaaS-услуг: администратор создаёт виртуальную машину (ВМ), на которой запускает нужный скрипт и по выполнению этого скрипта пользователь получает на email письмо с необходимыми параметрами. Таким образом, клиент получает готовый сервис, которым может сразу пользоваться: ему не нужно ничего самостоятельно устанавливать и запускать.

Настройка шаблонов писем

Шаблон письма — это HTML-код, который отправляется на email пользователя после запуска скрипта.

Шаблоны писем настраиваются при создании скрипта. Для этого:

  1. Перейдите в Скрипты Создать скрипт.
  2. Введите настройки и тело скрипта.
  3. В разделе Уведомление на E-mail нажмите Добавить и настройте шаблоны писем.
    По умолчанию доступна настройка шаблона письма на английском языке — Письмо для EN. Для создания шаблона письма на русском нажмите Добавить письмо для RU.
  4. Укажите Тему письма для каждого шаблона.
  5. Настройте свой шаблон в поле Контент.
    По умолчанию в этом поле указаны HTML-блоки, которые вы можете использовать для создания собственного шаблона. Эти блоки являются частью глобального шаблона, в котором определён дизайн письма — логотип VMmanager, шрифты, цвет текста и кнопок. В текущей реализации возможности редактировать глобальный шаблон нет.
  6. Кнопка Предпросмотр позволяет посмотреть внешний вид письма, которое получит пользователь.
  7. Для сохранения скрипта и шаблона письма нажмите Создать.

    Создание шаблона письма

При запуске скрипта, если для него настроены шаблоны писем, можно указать email, на который будет отправлено письмо. Для этого:

  1. Включите опцию Отправить письмо, которое привязано к скрипту.
  2. Выберите Язык шаблона письма.
  3. Укажите Email получателя. Если поле оставить пустым, то письмо будет отправлено владельцу виртуальной машины, на которой запускается скрипт. Вы можете указать несколько получателей через запятую.

    Отправка письма

    Обратите внимание!
    Указание email получателя доступно только администратору VMmanager. Обычный и продвинутый пользователи могут отправлять письмо только на собственный email.

При одновременном запуске нескольких скриптов на одной ВМ письмо можно будет отправить только по одному скрипту.

Параметры и переменные скриптов в шаблонах

Все параметры и переменные, которые используются в скрипте, могут также использоваться в шаблонах писем.

Это позволяет подставить используемые параметры в письмо пользователю. Например, при выполнении скрипта генерируется логин и пароль. Тогда эти параметры можно указать в шаблоне письма.

Чтобы передать параметры из скрипта в шаблон, используйте в скрипте следующие конструкции:

  • vm_export_variable <var_name> <var_value> — используется для передачи переменной в шаблон письма. Например, в скрипте генерируется пароль и его значение можно отправить в письме;

    Пояснения
    Обратите внимание!
    Все переменные (из скрипта, глобальные/локальные, параметры), которые нужно добавить в шаблон письма, необходимо указать в теле шаблона в формате ($var_name).
  • vm_export_file <file_name> <file_path> — используется для передачи в шаблон письма файла, который генерируется внутри скрипта. Файл отправляется во вложении к письму и внутри шаблона письма указывать его не нужно;

    Пояснения
  • vm_export_dir <dir_name> <dir_path> — используется для передачи в шаблон письма директории в формате архива .tar. Архив отправляется во вложении к письму и внутри шаблона письма указывать его не нужно.

    Пояснения
    Обратите внимание!
    Конструкция vm_export_dir не работает на виртуальных машинах с Windows, а также на ВМ, в которых не установлен tar.

По умолчанию максимальный размер прикрепляемого к письму файла/архива — 2 МБ. Для изменения этого значения, выполните следующий запрос:

Изменение размера прикрепляемого файла
curl -k -H 'x-xsrf-token: токен пользователя'  https://IP-Address/vm/v3/setting/max_export_file_size_mib -d '{"value":"Размер файла в Мбайтах"}'

Пример настройки шаблона письма

В качестве примера приведён скрипт, который создаёт и компилирует файл на языке C++:

Тело скрипта
dnf install -y gcc git gcc-c++

mkdir /root/example
cd /root/example
echo '#include <iostream>

int main() {
    std::cout << "Hello world!";
}' > ./example.cpp
g++ example.cpp -o /root/example/example
/root/example/example > /tmp/test.txt
output="$(cat /tmp/test.txt)"

vm_export_variable output "$output"
vm_export_file output.txt /tmp/test.txt

rm -rf /tmp/test.txt /root/example

Настройки скрипта


В письме выводится информация: IP-адрес виртуальной машины, на которой компилируется файл, версия сборки и вывод:

Контент шаблона письма
<h1 style="margin-bottom: 10px">Ваш файл скомпилирован</h1>
<div>
  <p><b>Скомпилировано на:</b> ($IP)</p>
  <p><b>Версия сборки:</b> ($build_ver)</p>
  <p><b>Вывод:</b> ($output)</p>
</div>

Для этого используется глобальная переменная $IP, параметр скрипта build_ver и переменная, заданная в скрипте output.

Настройка шаблона письма на русском языке


Пример полученного письма

Настройка уведомления через API

Чтобы настроить уведомление пользователя при переустановке ОС на ВМ, выполните POST-запрос /host/{host_id}/reinstall:

Пример тела запроса
{
  "os": 24,
  "password": "secret",
  "recipe_list": [
    {
      "recipe": 22,
      "recipe_params": [
      ],
      "recipients": [
          {
             "lang": "ru"
          }
      ],
      "send_email": true
    }
  ],
  "send_email_mode": "default"
}

В запросе укажите обязательные параметры:

  • os — id шаблона ОС;
  • password — пароль администратора;
  • recipe — id скрипта;
  • lang — язык письма. Возможные значения:
    • en — английский;
    • ru — русский;
  • send_email — нужно ли отправлять письмо. Возможные значения:
    • true — отправлять;
    • false — не отправлять;
  • send_email_mode — режим отправки письма. Возможные значения:
    • saas_only — будет отправлено только письмо, привязанное к скрипту;
    • default — будет отправлено и письмо, привязанное к скрипту, и письмо о переустановке ОС. 


Значения параметров не сохраняются, а работают в рамках одного запроса.
Может быть полезно