Установка OTRS 6 в Google Cloud Platform (Debian 9, PostgreSQL)
Статья представляет собой руководство по развертыванию 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.
2. В разделе Хранение данных - SQL - создать экземпляр СУБД PostgreSQL. Выбрать регион и зону, см. рекомендации по выбору. После создания экземпляра СУБД, создать базу с именем otrs.
Обращаем внимание, что Cloud SQL for PostgreSQL в настоящее время (на февраль 2018) имеет статус бета-версии, о рисках использования (отказ от SLA и возможная обратная несовместимость) Google предупреждает отдельно. В качестве альтернативы рекомендуется использовать Compute Engine (виртуальные машины с развернутой PostgreSQL). - потеряло актуальность в связи с выходом продуктивной версии.
3. В разделе Compute Engine - Экемпляры ВМ - создать виртуальную машину для исполняемой среды. Тип машины - объем памяти и количество ядер задается исходя из планируемой нагрузки, разумеется, не ниже рекомендуемых разработчиком системных требований. В пункте Загрузочный диск выбрать желаемый тип (HDD/SSD) и объем носителя, операционную систему. Отметить чек-боксы: Разрешить трафик HTTP, Разрешить трафик HTTPS.
Создание виртуальной машины займет от одной до нескольких минут.
4. После создания виртуальной машины - в настройках экземпляра базы (Авторизация) разрешить подключение с IP виртуальной машины исполняемой среды.
На этом шаге этап с подготовкой инфраструктуры можно считать завершенным. Можно переходить к установке, собственно, OTRS.
Подготовка OTRS 6
1. В консоли Compute Engine найти подготовленную виртуальную машину и подключиться к ней через SSH. Дальнейшие шаги будут выполняться либо под суперпользователем, либо пользователем приложения (otrs).
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
-
Примечание:
- libnet-sslglue-perl - исправляет ошибку "otrs.Daemon.pl: using SSL support of Net::SMTP 3.08_01 instead of SSLGlue "
- libdbd-mysql-perl - по-умолчанию в Config.pm в качестве драйвера СУБД задан MySQL. Если не устанавливать эту библиотеку (и не исправлять Config.pm), веб-установщик не будет работать.
5. Проверить, установлены ли все обязательные компоненты. В выводе скрипта otrs.CheckModules.pl должны отсутствовать сообщения об ошибках.
perl /opt/otrs/bin/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) и пароль. Протестировать подключение к базе и продолжить - установщик создаст схему базы и загрузит метаданные.
3. Системные настройки:
- SystemID (Системный идентификатор) - используется в схеме нумерации заявок. Значение не принципиально.
- Системный FQDN - полное доменное имя хоста с OTRS
- Адрес администратора
- Организация - наименование Вашей компании
- Модель журнала - указать Системный журнал, в этом случае для ведения логов будет использоваться syslog
- Проверять записи MX - указать Да, в этом случае будет производиться проверка MX-записей, что позволит избежать ошибок ввода адресов E-mail
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
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 6 можно считать завершенной. В последующих статьях мы рассмотрим подключение LDAP-хранилища учетных записей клиентов и агентов, а также настройку очередей.
другие статьи