Возникла необходимость в обновлении OTRS 4 до OTRS 5
В OTRS 5 версии была заявлена поддержка в работе с динамическими полями в процессной заявке — передача значений между ними, которая мне очень нужна…
Имеем: Виртуальную машину на Hyper-V с системой Ubuntu 14.04, OTRS 4 Free версии 4.0. 13, База данных MySQL 5.5.44. Обновляться будем до текущей актуальной версии 5.0.18
Действующая OTRS 4 устанавливалась в папку /opt простым разархивированием из tar.gz, поступим так же и с OTRS 5.
Сначала тормозим службы и сервисы:
apache2ctl stop sudo -u otrs /opt/otrs/bin/Cron.sh stop /opt/otrs/bin/otrs.Scheduler.pl -a stop /etc/init.d/cron stop
Базу данных импортировать будем только с целью бекапа.
Делаем бекап базы данных:
mysqldump -u otrs -p otrs > ~/db.sql
Переименовываем текущую папку, чтобы не запутаться:
mv /opt/otrs-4.0.13/ /opt/otrs-4.0.13-old
Скачиваем OTRS 5:
wget http://ftp.otrs.org/pub/otrs//otrs-5.0.18.tar.gz
Разархивируем скаченную версию в папку /opt
tar -xvzf otrs-5.0.18.tar.gz -C /opt
Восстанавливаем конфиги.
Так как мы не стирали старый OTRS, а просто переименовали, то копируем из OTRS4 в OTRS5 следующие файлы:
cp /opt/otrs-4.0.13-old/Kernel/Config.pm /opt/otrs/Kernel cp /opt/otrs-4.0.13-old/Kernel/Config/Files/ZZZAuto.pm /opt/otrs/Kernel/Config/Files cp /opt/otrs-4.0.13-old/var/log/TicketCounter.log /opt/otrs/var/log
Изменяем права:
Теперь нужно поменять права на разархивированном дистрибутиве на те, которые используются. (Можно подсмотреть по аналогии с OTRS4, которая была установлена ранее)
У меня это: пользователь «otrs», группа «www-data»
Для смены прав в OTRS есть скрипт, который находится в /opt/otrs-5.0.18/bin и называется otrs.SetPermissions.pl , запускаем:
cd /opt/otrs-5.0.18/bin ./otrs.SetPermissions.pl --web-group=www-data ./otrs.SetPermissions.pl --otrs-user=otrs
Для правильной работы делаем ссылку (этого можно не делать, а просто переименовать «otrs-5.0.18» в «otrs», но мне так привычнее что ли…):
ln -s otrs-5.0.18/ otrs
Проверка наличия необходимых модулей
Далее проверяем все ли необходимые модули присутствуют в системе, для этого в OTRS есть скрипт /opt/otrs-5.0.18/bin/otrs.CheckModules.pl:
./otrs.CheckModules.pl
У меня не было двух модулей, устанавливаем их:
apt-get install -y libxml-libxml-perl apt-get install -y libxml-libxslt-perl
после этого должно быть примерно так:
Обновление БД
cd /opt/otrs/
cat scripts/DBUpdate-to-5.mysql.sql | mysql -p -f -u root otrs
Проверяем, что все работает:
sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Database::Check
Миграция базы данных
Cкриптом, идущем в комплекте с программой OTRS «адаптируем» базу данных для версии OTRS 5.
Запускаем скрипт миграции базы данных до 5 версии OTRS. Ошибок быть не должно.
sudo -u otrs /opt/otrs/scripts/DBUpdate-to-5.pl
Далее обновляем конфигурацию и чистим кеш
sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Config::Rebuild sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Cache::Delete
Проверка и обновление пакеджей
Проверяем какие пакеджи у нас установлены и обновляем их:
sudo -u otrs /opt/otrs/bin/otrs.Console.pl Admin::Package::List
у меня только FAQ модуль, который надо обновить, смотрим какие актуальные здесь: http://ftp.otrs.org/pub/otrs//packages
и обновляем:
sudo -u otrs /opt/otrs/bin/otrs.Console.pl Admin::Package::Upgrade http://ftp.otrs.org/pub/otrs//packages/:FAQ-5.0.2.opm
после этого у меня получилось:
У меня после обновления FAQ в нем сразу не подтянулись картинки (jpg и png) — отображались только ссылки на них. Для того чтобы заработало нужно обновить статьи.
Планировщик
Переименовываем в папке /opt/otrs-5.0.18/var/cron/otrs.daemon.dist в otrs.daemon
Добавляем в планировщик cron задачу, которая контролируют наличие запущенного сервиса otrs.Daemon.pl, который, в свою очередь, заменяет обработку событий, которые в предыдущей версии запускались через cron
Вот здесь сравнение двух папок — OTRS4 и OTRS5 , в 5 версии остается только задание otrs.daemon (на aaa_base не обращайте внимание — случайно здесь оказалась :))
Запускаем демон :
sudo -u otrs /opt/otrs/bin/otrs.Daemon.pl start
И затем обновляем задания cron для OTRS запустив скрипт
sudo -u otrs /opt/otrs/bin/Cron.sh start
Смотрим, что задание добавилось:
Далее запускаем apache
apache2ctl start
Уведомления агентов
Заходим в админку OTRS5 и включаем уведомления агентов (в новой версии появились свои и «старые», которые перекочевали из предыдущей версии по умолчанию отключены)
включаем их.
Соответственно новые отключаем — иначе будет по несколько уведомлений приходить на одно событие.
E-mail для планировщика
Так как в 5 появился свой планировщик, который будет отправляться оповещения о событиях и ошибках (например ошибки с информацией о невозможности подключения к почтовому серверу и т.д.). ему нужно указать E-Mail на который будут отправляться оповещения:
Доработки после обновления:
1. Если использовался логотип компании в customer.pl, то его надо скопировать в новую директорию:/opt/otrs-5.0.18/var/httpd/htdocs/skins/Customer/default/img из старой OTRS
2. Перестал подставляться заголовок сообщения по умолчанию при закрытии заявки: его нужно снова прописать Ticket → Frontend::Agent::Ticket::ViewClose
добавить значение по умолчанию
[% Translate("Close") | html %]
3. У меня бала настроена автоматическая отправка отчета, который я создал в OTRS 4, мне на почту в начале каждого месяца, делалось это скриптом, который был в OTRS 4. Скрипт назывался: /opt/otrs-4.0.13/bin/otrs.GenerateStats.pl и выполнялся cron-ом.
В OTRS 5 этого скрипта более нет. Вместо него /opt/otrs-5.0.18/bin/otrs.Console.pl
Пример реализации:
Создаем скрипт «shed_1013.sh»
#!/bin/sh
/opt/otrs-5.0.18/bin/otrs.Console.pl Maint::Stats::Generate --number 10013 --mail-recipient Mymail@mydomen.ru --mail-body 'Базовый отчет' --format Excel
здесь » —number 10013″ номер отчета, созданного в веб интерфейсе OTRS
Добавляем в расписание: (у меня скрипт сработал только когда я запускал его из планировщика из-под пользователя «otrs»: crontab -e -u otrs)
crontab -e
# m h dom mon dow command
1 8 1 * * /home/shed_1013.sh
На этом все.