Установка OTRS 6 в Google Cloud Platform (Debian 9, PostgreSQL)

OTRS in Google Cloud Platform

Статья представляет собой руководство по развертыванию OTRS 6 с использованием Google Cloud Platform. Руководство не заменяет собой документацию системы, опубликованную на официальном сайте OTRS, но, тем не менее, содержит ряд советов и рекомендаций от нашей команды, выработанных в результате многолетнего опыта внедрения и эксплуатации системы.

Пример конфигурации, приведенный ниже, использует ресурсы Google Cloud Platform (GCP), однако система с таким же успехом может быть развернута на собственных (on-prem, colocation) или арендуемых (VDS/VPS) мощностях.

GCP представляется оптимальным решением для малого и среднего бизнеса, обладая рядом ключевых преимуществ:

  • Масштабируемость. Возможность динамического управления потребляемыми ресурсами (вычислительные мощности, дисковое простанство) соразмерно текущим потребностям бизнеса
  • Удобный, дружественный пользователю интерфейс управления (консоль)
  • Использование одной из самых мощных, высокодоступных и производительных инфраструктур на планете (Google Maps, GMail, YouTube)
  • Нет необходимости инвестировать в приобретение и обслуживание серверных мощностей

Разработчик OTRS позволяет эксплуатировать систему на различных СУБД (PostgreSQL, MySQL, Oracle) и не ограничивает пользователя в выборе операционных систем (Debian, RHEL, SLES, CentOS, Ubuntu, FreeBSD), однако мы рекомендуем придерживаться следующей конфигурации:

  • СУБД PostgreSQL >9.2. С подробным описание преимуществ перед MySQL/MariaDB можно ознакомиться тут и тут. Преимущества перед Oracle (как и любой другой проприетарной СУБД) также наглядны - отсутствие лицензионных затрат при том же уровне производительности.
  • ОС Debian Linux 9. Богатый выбор и простота установки из репозиториев вспомогательных библиотек Perl сочетаются с репутацией Debian как стабильной и надежной серверной ОС. Возможные альтернативы: CentOS, RHEL, Ubuntu Server. Менее желательны: FreeBSD, SLES, Fedora Core.
  • Apache2 Web Server >2.4 w/ mod_perl2.
  • На продуктивном пространстве рекомендуется разделить СУБД и исполняемую среду по разным серверам. Для высоконагруженных систем также допустима балансировка нагрузки с использованием nginx и вынос кэша в in-memory СУБД наподобие Redis.
  • Системные требования: Xeon 2.3 GHz и выше, 8 GB RAM, 256 GB HDD. Детальные требования к вычислительным мощностям исполняемой среды и СУБД рекомендуется рассчитывать индивидуально, исходя из преобладающих сценариев использования системы: Service Desk, CMDB, регламентированные процессы, формирование отчетности.

    Опять же, использование мощностей GCP в данном случае - очевидный плюс, см. выше. При повышенной нагрузке в момент выполнения определенных сценариев, например, при подготовке отчетности или загрузке большого объема данных в CMDB из внешних систем - увеличиваем объем предоставляемых ресурсов, в стандартном режиме - уменьшаем.

Подготовка инфраструктуры

В ходе приводимого ниже примера будут созданы:

  • Экземпляр Google Cloud SQL for PostgreSQL с базой OTRS
  • Экземпляр Google Compute Engine с исполняемой средой OTRS

1. В консоли GCP создать новый проект с именем OTRS.
GCP Dashboard
2. В разделе Хранение данных - SQL - создать экземпляр СУБД PostgreSQL. Выбрать регион и зону, см. рекомендации по выбору. После создания экземпляра СУБД, создать базу с именем otrs.
GCP Dashboard SQL
Обращаем внимание, что Cloud SQL for PostgreSQL в настоящее время (на февраль 2018) имеет статус бета-версии, о рисках использования (отказ от SLA и возможная обратная несовместимость) Google предупреждает отдельно. В качестве альтернативы рекомендуется использовать Compute Engine (виртуальные машины с развернутой PostgreSQL). - потеряло актуальность в связи с выходом продуктивной версии.

3. В разделе Compute Engine - Экемпляры ВМ - создать виртуальную машину для исполняемой среды. Тип машины - объем памяти и количество ядер задается исходя из планируемой нагрузки, разумеется, не ниже рекомендуемых разработчиком системных требований. В пункте Загрузочный диск выбрать желаемый тип (HDD/SSD) и объем носителя, операционную систему. Отметить чек-боксы: Разрешить трафик HTTP, Разрешить трафик HTTPS.
GCP Dashboard Compute Engine
Создание виртуальной машины займет от одной до нескольких минут.

4. После создания виртуальной машины - в настройках экземпляра базы (Авторизация) разрешить подключение с IP виртуальной машины исполняемой среды.
OTRS Database
На этом шаге этап с подготовкой инфраструктуры можно считать завершенным. Можно переходить к установке, собственно, OTRS.

Подготовка OTRS 6

1. В консоли Compute Engine найти подготовленную виртуальную машину и подключиться к ней через SSH. Дальнейшие шаги будут выполняться либо под суперпользователем, либо пользователем приложения (otrs).
OTRS Database
2. Обновить локальный лист пакетов

sudo apt-get update

3. В каталоге /opt - скачать архив с исходными кодами OTRS и развернуть его. В целях удобства дальнейших обновлений, рекомендуется оставить OTRS в каталоге с указанием версии, создав на него символическую ссылку с именем otrs.

cd /opt
sudo wget http://ftp.otrs.org/pub/otrs/otrs-6.0.10.tar.gz
sudo tar -zxf otrs-6.0.10.tar.gz
sudo ln -s otrs-6.0.10 otrs

4. Выполнить установку вспомогательного ПО и необходимых библиотек

sudo apt-get install -y apache2
sudo apt-get install -y libapache2-mod-perl2 libdbi-perl libarchive-zip-perl libcrypt-ssleay-perl 
sudo apt-get install -y libcrypt-eksblowfish-perl libtimedate-perl libdatetime-perl libdbd-pg-perl libio-socket-ssl-perl  
sudo apt-get install -y libjson-xs-perl libmail-imapclient-perl libio-socket-ssl-perl libauthen-sasl-perl libnet-dns-perl 
sudo apt-get install -y libnet-ldap-perl libtemplate-perl libtext-csv-xs-perl libxml-libxml-perl libxml-libxslt-perl
sudo apt-get install -y libxml-parser-perl libyaml-libyaml-perl libdbd-mysql-perl libnet-sslglue-perl

5. Проверить, установлены ли все обязательные компоненты. В выводе скрипта otrs.CheckModules.pl должны отсутствовать сообщения об ошибках.

perl /opt/otrs/bin/otrs.CheckModules.pl

OTRS otrs.CheckModules.pl
6. Создать пользователя otrs, добавить его в группу сервера apache. Для удобства также установим пользователю bash в качестве дефолтной оболочки.

useradd -d /opt/otrs -c 'OTRS user' otrs
usermod -G www-data otrs
usermod -s /bin/bash otrs

7. Создать корневой конфигурационный файл на основе дистрибутивного примера.

cp /opt/otrs/Kernel/Config.pm.dist /opt/otrs/Kernel/Config.pm

8. Настройка веб-сервера Apache: включение приложения и всех необходимых модулей, запуск конфигурации.

ln -s /opt/otrs/scripts/apache2-httpd.include.conf /etc/apache2/sites-enabled/zzz_otrs.conf
a2enmod perl deflate filter headers
systemctl restart apache2

9. Выдача прав на исполняемую среду и контрольный тест наличия всех необходимых модулей. Результат успешного прохождения теста - вывод команды perl "syntax OK".
/opt/otrs/bin/otrs.SetPermissions.pl
perl -cw /opt/otrs/bin/cgi-bin/index.pl
perl -cw /opt/otrs/bin/cgi-bin/customer.pl
perl -cw /opt/otrs/bin/otrs.Console.pl

Установка OTRS 6

1. Запустить веб-установщик: http://yourhost/otrs/installer.pl, где yourhost - IP вашей виртуальной машины Google Cloud Computing. На экране отобразится приветственная страница с контактными данными подразделений компании-разработчика. При нажатии кнопки "Вперед" будет выведено лицензионное соглашение, ознакомившись с которым, необходимо перейти к настройке подключения к базе.

2. Выбрать тип базы PostgreSQL, указать: Использовать существующую базу данных OTRS (ранее созданную нами). В настройках подключения указать имя базы - otrs, имя пользователя (postgres) и пароль. Протестировать подключение к базе и продолжить - установщик создаст схему базы и загрузит метаданные.
OTRS web installer

3. Системные настройки:

  • SystemID (Системный идентификатор) - используется в схеме нумерации заявок. Значение не принципиально.
  • Системный FQDN - полное доменное имя хоста с OTRS
  • Адрес администратора
  • Организация - наименование Вашей компании
  • Модель журнала - указать Системный журнал, в этом случае для ведения логов будет использоваться syslog
  • Проверять записи MX - указать Да, в этом случае будет производиться проверка MX-записей, что позволит избежать ошибок ввода адресов E-mail
4. Настройки почты. К сожалению, установщик OTRS недостаточно хорошо обрабатывает ошибки подключения к почтовым серверам (соединение, авторизация) и не позволяет провести предварительное тестирование соединения, что в свою очередь, может повлечь за собой срыв процесса установки. Таким образом, этот шаг желательно пропустить, задав настройки почтовых серверов позже. На этом веб-установка завершается. Установщик сгенерирует пароль администратора (root@localhost), и сообщит ссылку для входа в административный интерфейс: http://yourhost/otrs/index.pl

4.1. Необходимо войти под учетной записью администратора, перейти в модуль Администрирование - пункт Настройка Системы, найти и указать настройки почтового сервера для отправки уведомлений:

  • SendmailEnvelopeFrom - адрес отправителя для исходящих сообщений. Если не задан - используется почтовый адрес, заданный для конкретной очереди.
  • SendmailModule - модуль отправки почты. В зависимости от поставщика почтовых услуг. Предпочтительнее использовать SMTPS или SMTPTLS.
  • SendmailModule::AuthPassword - пароль учетной записи
  • SendmailModule::AuthUser - имя учетной записи
  • SendmailModule::Host
  • SendmailModule::Port
  • SendmailNotificationEnvelopeFrom - адрес отправителя для исходящих служебных уведомлений. Необходимо обратить внимание на корректное заполнение этого адреса, особенно в том случае, если используются внешние поставщики (GMail, Yandex Mail).

4.2. Привязка почтового адреса для исходящей почты к очереди осуществляется в меню: Адреса e-mail (AdminSystemAddress). Очередь по-умолчанию для всех почтовых сообщений - Postmaster. О настройке очередей будет рассказано отдельно.

4.3. Настройка получения входящих почтовых заявок - пункт Учетные записи почты для Postmaster (AdminMailAccount).
  • Указать настройки используемого поставщика почтовых услуг - имя пользователя, пароль, сервер и протокол
  • Рекомендуется (по аналогии с исходящей почтой) использовать защищенные протоколы: IMAPS, IMAPTLS
  • Перенаправление - по выбранной очереди
  • Очередь - Postmaster
OTRS web installer

5. Запуск OTRS Daemon. OTRS Daemon - системная служба, осуществляющая функции планировщика и брокера асинхронных запросов. Для запуска необходимо выполнить в консоли команду от имени пользователя otrs:

sudo -u otrs /opt/otrs/bin/otrs.Daemon.pl start


6. Cron Daemon. В каталоге /opt/otrs/var/cron/ есть две задачи cron, цель которых - поддерживать бесперебойную работу OTRS Daemon. Задачи активируются переименованием их (убирается суффикс *.dist) и последующей активацией.
cd /opt/otrs/var/cron
sudo -u otrs sh -c 'for foo in *.dist; do cp $foo `basename $foo .dist`; done'
sudo -u otrs /opt/otrs/bin/Cron.sh start


Введя команду sudo -u otrs crontab -l мы увидим, что для пользователя otrs появилась задача, выполняющая функцию watchdog для OTRS Daemon.

OTRS crontab задачи

На этом установку OTRS 6 можно считать завершенной. В последующих статьях мы рассмотрим подключение LDAP-хранилища учетных записей клиентов и агентов, а также настройку очередей.