Yandex.Cloud.- облачная платформа, где каждый может создавать и совершенствовать свои цифровые сервисы, используя инфраструктуру и уникальные технологии компании Яндекса.
В настоящее время уже существует готовый образ 1С:Предприятие 8 на базе операционной системы семейства Linux для простого развертывания и построения 1С-инфраструктуры в виртуальном пространстве Yandex.Cloud. Эта технология может быть использована в качестве сервера приложений и/или сервера лицензирования 1С.
Из чего она состоит:
- Предустановленные пакеты 1С:Предприятие стабильной версии.
- Предустановленная утилита Ring для управления лицензиями 1С:Предприятие (получение, обновление и проверка информации о лицензиях).
- Преднастроенный мониторинг лицензий 1С:Предприятие с автоматической реактивацией в случае сбоев.
- Почтовый сервис для оповещения при сбое и активации лицензий.
- Возможность установки дополнительных пакетов 1С:Предприятие для расширения функционала сервера.
Техническое описание
Базовый образ: Ubuntu 18.04
Версия 1С: 8.3.17.1851
Установленные пакеты 1С:
- 1С-enterprise83-common
- 1С-enterprise83-server
Утилита Ring с модулем license версии 0.14.2
Java 1.8 и gawk для работы Ring
ssmtp для отправки почтовых сообщений
Возможность доставить пакеты 1С (языковой, компоненты веб-сервера и репозитория) из директории /usr/src/1С/
Дополнительные возможности
- Скрипт для активации лицензий через веб-сервис от 1С.
- Инструмент мониторинга за состоянием лицензий с возможностью автоматической повторной активации.
- Шаблоны для почтовых уведомлений.
Настройка образа для работы с лицензиями 1С
Общие сведения
Ознакомится с информацией о способах и порядке получения программных лицензий можно на сайте ИТС. Важно обратить внимание, что при изменении ключевых параметров компьютера - может произойти сбой в работе лицензий. Ознакомиться с ключевыми параметрами можно также на сайте.
При проверке информации о компьютере анализируется только удаление (уменьшение) ресурсов по отношению к моменту активации.
Еще одной причиной, по которой может произойти сбой в работе лицензий - миграции виртуального инстанса на сервер отличной конфигурации. Это происходит потому, что «под капотом» у любого облака находится реальное железо, и сервера могут отличаться друг от друга. Чаще всего, при использовании облачной инфраструктуры, изменяются такие характеристики, как количество ядер CPU и объем RAM.
Чтобы не держать в голове необходимость повторной активации лицензий при изменении параметров и обезопасить себя от особенностей облачных решений, мы предлагаем использовать следующий инструментарий для управления лицензиями 1С на базе утилиты Ring.
Набор инструментов расположен в /scripts/ring/
Рис.1 Инструментарий для управления лицензиями 1С
- activate – исполняемый файл активации лицензии. Запускается с параметром.
- activmail – исполняемый файл отправки отчета об активации лицензии. Запускается с параметром.
- alertmail – исполняемый файл отправки уведомления при сбое лицензии. Запускается с параметром.
- check – исполняемый файл проверки валидности лицензий.
- license_info_template – шаблон для ввода информации о лицензии (номер продукта, данные владельца, пин-коды).
- report – файл содержит адреса для отправки писем при активации и сбое лицензии.
Настройка и включение почтовых уведомлений
Настройка MTA
Для отправки почтовых сообщений нужно подключить внешнюю почтовую учетную запись. Для этого правим два конфигурационных файла: ssmtp.conf и revaliases. Ниже представлены настройки на серверах yandex.ru для учетной записи:
/etc/ssmtp/ssmtp.conf
#Определяем кто будет принимать почту для root (можно указать реальный адрес)
root=postmaster
#имя сервера
hostname=localhost
#Адрес и порт smtp-сервера
mailhub= smtp.yandex.ru:465
#Использование шифрования
UseTLS=YES
#Учетные данные для аутентификации на почтовом сервере
AuthUser=
AuthPass=
AuthMethod=LOGIN
#Адрес, с которого приходит письмо для аутентификации пользователя.
rewriteDomain= yandex.ru
#Запрет переопределять поле From со стороны скриптов.
FromLineOverride=NO
/etc/ssmtp/revaliases
#Алиас для пользователя ОС
root:: smtp.yandex.ru:465
Проверка работы почтового агента
Для проверки правильности настроек можно отправить тестовое письмо из консоли:
echo "Subject: Hello" | sendmail -v
Если письмо не пришло, то нужно анализировать логи работы агента: /var/log/mail.log
Добавление адресов для получения уведомлений
В файл /scripts/ring/report нужно внести данные по адресам доставки уведомлений. Несколько адресов вводим через запятую:
#Отчет об активации лицензии
repmailbox="user1@ domen.ru,user2@ domen.ru,user3@ domen.ru"
#Уведомление в случае сбоя лицензии
alertmailbox="user1@ domen.ru,user2@ domen.ru,user3@ domen.ru"
Первая активации лицензий на сервере
Для каждой лицензии (серверная/клиентская) необходимо проделать следующий порядок действий (все рабочие файлы находятся в /scripts/ring/):
- Копируем шаблон license_info_template в ту же директорию. Новое имя не имеет значения, например:
cp /scripts/ring/license_info_template /scripts/ring/serverlic - Вносим в новый файл (serverlic) по шаблону регномер, пин-код(ы) и информацию о владельце – данные вводим между кавычек. Каждая переменная имеет подробное описание.
Внимание! Если вы ранее уже использовали лицензию, то информацию о владельце нужно повторить с точностью до символа, иначе при активации возникнет ошибка.
Рис.2 Порядок активации лицензий на сервере
- Запускаем файл activate с параметром, совпадающим с именем файла с данными: /scripts/ring/activate serverlic
- При успешной активации файл с реквизитами будет переименован. Имя будет совпадать с идентификатором лицензии. Список всех лицензий можно посмотреть с помощью команды: ring license list
- При настроенных уведомлениях (см. предыдущий раздел) на почту должно прийти письмо с параметрами лицензии, которое можно переслать в компанию 1С для получения нового пин-кода, если у вас больше нет запасных.
- Если активация не прошла, то причины ошибки можно посмотреть в лог-файле: /var/log/ring/ring.log
Повторная активация лицензий на сервере («заряжаем скрипт»)
После активации лицензии в рабочем каталоге должен сохраниться файл с параметрами. Имя файла полностью совпадает с идентификатором самой лицензии, который можно посмотреть с помощью команды: ring license list
Для возможности повторной активации нужной лицензии необходимо в соответствующем файле указать актуальные значения пин-кодов. А именно:
- Использованный пин-код вводим в переменную: previsouspin
- Новый пин-код вводим в переменную: pin
- Сохраняем файл. Имя не меняем.
Если запасного пин-кода больше нет, то производим его запрос по электронной почте: lic@1С.ru
(Необязательное действие) Если необходимо вручную активировать лицензию, то запускаем команду: /scripts/ring/activate
Включение мониторинга и автоматической активации
- Скрипт /scripts/ring/check при запуске проверяет состояние всех подключенных лицензий на сервере.
- Результаты проверки сохраняются в лог-файл: /var/log/ring/check.log
- Формат лога: . Первое поле принимает значение: 0 – лицензия не прошла валидацию, 1 – лицензия прошла валидацию.
- В случае сбоя одной или нескольких лицензий запускается скрипт активации с нужным параметром. Файл с реквизитами должен существовать и быть корректно заполнен, а его имя должно совпадать с идентификатором лицензии (создается автоматически при первой активации через скрипт activate).
- Для автоматического запуска проверки нужно снять символ комментария у соответствующей строки в /etc/crontab (по умолчанию он будет запускаться раз в 5 минут).
Рис.3 Запуск автоматической проверки подключенных лицензий
- При сбое лицензии и настроенном уведомлении на почту придет сообщение с информацией о времени, идентификаторе лицензии и имени сервера.
Я все настроил, что дальше?
Если все предыдущие пункты выполнены в полном объеме, то вам остается дождаться срабатывания «заряда активации» по каким-либо причинам:
- Получаем письмо о сбое лицензии: License failure;
- Получаем уведомление об успешной активации: License have been activated;
- Пересылаем письмо данными о лицензии на адрес lic@1С.ru с запросом нового пин-кода;
- После получения нового пин-кода правим файл с параметрами соответствующей лицензии (вводим актуальные значения пи-кодов);
- Ждем следующего «выстрела».
Настройка сервера лицензирования
Преимущества использования
- Не требует дополнительной серверной лицензии.
- Централизованное хранение всех лицензий.
- Клиентские лицензии раздаются на все сервера приложений. Можно подключить один ключ вместо нескольких под каждый сервер.
- Аппаратные требования сервера лицензирования невысокие, а значит, ключевые параметры не будут постоянно меняться. Это минимизирует вероятность сбоя в работе лицензий.
- Переустановка или подключение нового сервера приложений не потребует повторной активации лицензии.
- Для восстановления работы сервера достаточно иметь резервную копию на момент последней активации лицензии.
Настройка на уровне 1С
- Разворачиваем из образа два сервера: первый – сервер лицензирования (srv-lic), второй – рабочий сервер приложений (srv-app).
- Через консоль администрирования 1С удаляем автоматически созданный кластер на сервере лицензирования.
Рис.4 Удаление кластера через консоль администрирования 1С
3. В консоли администрирования на сервере приложений добавляем «Рабочий сервер» и указываем параметры сервера лицензирования.
Рис.5 Создание «Рабочего сервера»
Рис.6 Новый рабочий сервер лицензирования 1С
4. Для сервера лицензирования настраиваем «Требования назначения функциональности»:
a. «Любой объект требования» – «Не назначать» (все остальные поля оставляем пустыми);
b. «Сервис лицензирования» – «Назначать» (все остальные поля оставляем пустыми).
Рис.7 Требования назначения функциональности
5. Для сервера приложений настраиваем «Требования назначения функциональности»:
a. «Любой объект требования» – «Назначать» (все остальные поля оставляем пустыми);
b. «Сервис лицензирования» – «Не назначать» (все остальные поля оставляем пустыми).
Рис.8 Требования назначения функциональности
6. Применяем требования назначения функциональности (полное).
Рис.9 Требования назначения функциональности
7. Проверяем, что сервис лицензирования переехал на целевой сервер.
Рис.10 Проверка размещения сервиса лицензирования