Обновление OTRS 4 до OTRS 5

Автор: Андрей Торженов

Обновление:

upgrade_otrs4_to_5

 

У меня уже была попытка обновить OTRS 4 до версии 5.0.2 (база данных PostgreSQL). В финале статьи «Миграция с ORTS Appliance 4 на OTRS под CentOS 7» я описал свой неудачный опыт. С тех пор вышло большое количество обновлений OTRS 5 (на 15/02/2016 актуальная версия 5.0.6) и я решил совершить очередную попытку перехода на OTRS 5.

Для обновления я воспользовался стандартной документацией «Upgrading OTRS from 4 to 5», но в результате столкнулся с проблемами, которые решить с наскоку не получилось и судя по западным форумам, данные проблемы возникли не только у меня и решения пока нет.

Суть проблемы в следующем. После обновления, при попытке зайти на страницу аутентификации OTRS, появляется ошибка 500 и сообщение в логе:

[Thu Feb 10 15:22:46 2016] index.pl: Got no ConfigObject! at /opt/otrs/bin/cgi-bin/../../Kernel/Output/HTML/NotificationSchedulerCheck.pm line 30.

Я решил радикально бороться с данным явлением и совместить установку OTRS с нуля и его обновление. Данная манипуляция позволила избежать данной ошибки и получить чистый OTRS 5 без лишнего мусора, который обычно остаётся после обновлений.

Подготовка

Останавливаем Apache

[root@otrs ~]# systemctl stop httpd

Останавливаем задачи OTRS

[root@otrs ~]# /opt/otrs/bin/Cron.sh stop
[root@otrs ~]# /opt/bin/otrs.Scheduler.pl -a stop

Экспортируем базу данных OTRS

[root@otrs ~]# pg_dump -v -h 127.0.0.1 -U otrs -W otrs > ~/20160212_otrs4.sql

Переименовываем подкаталог с OTRS 4

[root@otrs ~]# mv /opt/otrs /opt/otrs_old

Скачиваем актуальную версию OTRS и устанавливаем

Предварительно смотрим какая актуальная версия: http://ftp.otrs.org/pub/otrs//RPMS/rhel/7

[root@otrs ~]# wget http://ftp.otrs.org/pub/otrs//RPMS/rhel/7/otrs-5.0.6-01.noarch.rpm

[root@otrs ~]# yum install --nogpgcheck ~/otrs-5.0.6-01.noarch.rpm

[root@otrs /]# /opt/otrs/bin/otrs.CheckModules.pl
  o Apache::DBI......................ok (v1.12)
  o Apache2::Reload..................ok (v0.13)
  o Archive::Tar.....................ok (v1.92)
  o Archive::Zip.....................ok (v1.30)
  o Crypt::Eksblowfish::Bcrypt.......ok (v0.009)
  o Crypt::SSLeay....................ok (v0.64)
  o Date::Format.....................ok (v2.24)
  o DBI..............................ok (v1.627)
  o DBD::mysql.......................Not installed! Use: 'yum install "perl(DBD::mysql)"' (optional - Required to connect to a MySQL database.)
  o DBD::ODBC........................Not installed! (optional - Required to connect to a MS-SQL database.)
  o DBD::Oracle......................Not installed! (optional - Required to connect to a Oracle database.)
  o DBD::Pg..........................ok (v2.19.3)
  o Encode::HanExtra.................Not installed! Use: 'yum install "perl(Encode::HanExtra)"' (optional - Required to handle mails with several Chinese character sets.)
  o IO::Socket::SSL..................ok (v1.94)
  o JSON::XS.........................ok (v3.01)
  o List::Util::XS...................ok (v1.27)
  o LWP::UserAgent...................ok (v6.13)
  o Mail::IMAPClient.................ok (v3.37)
    o IO::Socket::SSL................ok (v1.94)
  o ModPerl::Util....................ok (v2.000009)
  o Net::DNS.........................ok (v0.72)
  o Net::LDAP........................ok (v0.56)
  o Template.........................ok (v2.24)
  o Template::Stash::XS..............ok (undef)
  o Text::CSV_XS.....................ok (v1.00)
  o Time::HiRes......................ok (v1.9725)
  o Time::Piece......................ok (v1.20_01)
  o XML::LibXML......................ok (v2.0018)
  o XML::LibXSLT.....................ok (v1.80)
  o XML::Parser......................ok (v2.41)
  o YAML::XS.........................ok (v0.54)

Видим, что установлены все необходимые модули. Используется база данных PostgreSQL.

Восстанавливаем конфигурационные файлы

Восстанавливаем старые конфигурационные файлы от OTRS 4 (ранее мы переименовали подкаталог в котором находится OTRS 4 в /opt/otrs_old).

[root@otrs ~]# cp /opt/otrs_old/Kernel/Config.pm /opt/otrs/Kernel
[root@otrs ~]# cp /opt/otrs_old/Kernel/Config/Files/ZZZAuto.pm /opt/otrs/Kernel/Config/Files
[root@otrs ~]# cp /opt/otrs_old/var/log/TicketCounter.log /opt/otrs/var/log

Работа с базой данных

Во время установки OTRS 5 была созданная новая база данных «otrs». Она нам не нужна, т.к. у нас есть старая база данных от OTRS 4.

Очищаем базу данных otrs

[root@otrs log]# sudo -u postgres psql
psql (9.4.6)
Type "help" for help.

postgres=# DROP DATABASE otrs;
DROP DATABASE
postgres=# CREATE DATABASE otrs ENCODING 'utf8' OWNER otrs;
postgres=# \q

Импортируем базу данных от OTRS 4

[root@otrs log]# sudo -u postgres psql otrs < /root/20160212_otrs4.sql

Обновляем схему базы данных

Теперь у нас в базе данных информация от OTRS 4, необходимо её обновить до OTRS 5.

[root@otrs ~]# cd /opt/otrs/
[root@otrs otrs]# cat scripts/DBUpdate-to-5.postgresql.sql | psql --set ON_ERROR_STOP=on --single-transaction otrs otrs

Скрипт миграции до БД OTRS 5

Следим, что бы не было ошибок.

[root@otrs ~]# sudo -u otrs /opt/otrs/scripts/DBUpdate-to-5.pl

Migration started...

Step 1 of 17: Refresh configuration cache...
If you see warnings about 'Subroutine Load redefined', that's fine, no need to worry!
done.
Step 2 of 17: Check framework version...done.
Step 3 of 17: Migrate Database Column Types...done.
Step 4 of 17: Migrate charset to UTF-8 on auto_response table...done.
Step 5 of 17: Migrate charset to UTF-8 on notification_event table...done.
Step 6 of 17: Migrate event based notifications to support multiple languages...done.
Step 7 of 17: Migrate notifications to event based notifications...done.
Step 8 of 17: Migrate send notification user preferences...done.
Step 9 of 17: Add Email notification method to all event based notifications...done.
Step 10 of 17: Migrate Output configurations to the new module locations...
--- Toolbar modules......done.
--- Ticket menu modules......done.
--- Ticket overview menu modules......done.
--- Ticket overview modules......done.
--- Preferences group modules......done.
--- SLA/Service/Queue preference modules......done.
--- Article pre view modules......done.
--- NavBar menu modules......done.
--- NavBar ModuleAdmin modules......done.
--- Dashboard modules......done.
--- Customer user generic modules......done.
--- FilterText modules......done.
done.
Step 11 of 17: Add TicketZoom menu cluster configurations......done.
done.
Step 12 of 17: Fixup statistics time field configuration where the time interval is too small...
done.
Step 13 of 17: Fixup wrong notification tags...done.
Step 14 of 17: Fixup dashboard statistics output format configuration...
done.
Step 15 of 17: Uninstall Merged Feature Add-Ons...done.
Step 16 of 17: Clean up the cache...done.
Step 17 of 17: Refresh configuration cache another time...
If you see warnings about 'Subroutine Load redefined', that's fine, no need to worry!
done.

Migration completed!

Обновляем конфигурацию и удаляем кеш

[root@otrs ~]# sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Config::Rebuild
Rebuilding the system configuration...
Done.
[root@otrs ~]# sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Cache::Delete
Deleting cache...
Done.

Обновляем пакеджи (модули)

Если у вас установлены пакеджи (модули), их необходимо обновить.

Список установленных пакеджей

[root@otrs ~]#  sudo -u otrs /opt/otrs/bin/otrs.Console.pl Admin::Package::List
Listing all installed packages...
+----------------------------------------------------------------------------+
| Name:        FAQ
| Version:     4.0.2
| Vendor:      OTRS AG
| URL:         http://otrs.org/
| License:     GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
| Description: The FAQ/knowledge base.
+----------------------------------------------------------------------------+
| Name:        GeneralCatalog
| Version:     4.0.14
| Vendor:      OTRS AG
| URL:         http://otrs.org/
| License:     GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
| Description: The General Catalog package.
+----------------------------------------------------------------------------+
| Name:        ImportExport
| Version:     4.0.14
| Vendor:      OTRS AG
| URL:         http://otrs.org/
| License:     GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
| Description: The ImportExport package.
+----------------------------------------------------------------------------+
| Name:        ITSMConfigurationManagement
| Version:     4.0.14
| Vendor:      OTRS AG
| URL:         http://otrs.org/
| License:     GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
| Description: The OTRS::ITSM Configuration Management package.
+----------------------------------------------------------------------------+
| Name:        ITSMCore
| Version:     4.0.14
| Vendor:      OTRS AG
| URL:         http://otrs.org/
| License:     GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
| Description: The OTRS::ITSM Core package.
+----------------------------------------------------------------------------+

Как мы видим, они все 4ой версии.

Обновляем пакеджи

Предварительно смотрим какие актуальные версии: http://ftp.otrs.org/pub/otrs//packages и http://ftp.otrs.org/pub/otrs//itsm/packages5

[root@otrs ~]# sudo -u otrs /opt/otrs/bin/otrs.Console.pl Admin::Package::Upgrade http://ftp.otrs.org/pub/otrs//packages/:FAQ-5.0.2.opm
[root@otrs ~]# sudo -u otrs /opt/otrs/bin/otrs.Console.pl Admin::Package::Upgrade http://ftp.otrs.org/pub/otrs//itsm/packages5/:GeneralCatalog-5.0.6.opm
[root@otrs ~]# sudo -u otrs /opt/otrs/bin/otrs.Console.pl Admin::Package::Upgrade http://ftp.otrs.org/pub/otrs//itsm/packages5/:ITSMCore-5.0.6.opm
[root@otrs ~]# sudo -u otrs /opt/otrs/bin/otrs.Console.pl Admin::Package::Upgrade http://ftp.otrs.org/pub/otrs//itsm/packages5/:ITSMConfigurationManagement-5.0.6.opm
[root@otrs ~]# sudo -u otrs /opt/otrs/bin/otrs.Console.pl Admin::Package::Upgrade http://ftp.otrs.org/pub/otrs//itsm/packages5/:ImportExport-5.0.6.opm

Запускам сервис otrs.Daemon.pl

В OTRS 5 появился новый сервис (демон) otrs.Daemon.pl. Он выполняет обработку событий, которые ранее выполнялись через планировщик cron.

[root@otrs ~]# sudo -u otrs /opt/otrs/bin/otrs.Daemon.pl start

Задачи OTRS

Добавляем в планировщик cron задачи OTRS. Данные задачи контролируют наличие запущенного сервиса otrs.Daemon.pl.

[root@otrs cron]# sudo -u otrs /opt/otrs/bin/Cron.sh start
/opt/otrs/var/cron
Cron.sh - start/stop OTRS cronjobs
Copyright (C) 2001-2012 OTRS AG, http://otrs.org/
(using /opt/otrs) done

Запускам Apache

[root@otrs ~]# systemctl start httpd

Проверьте логи OTRS на предмет ошибок (Администрирование > Администрирование системы > Системный журнал).

E-Mail для планировщика

В OTRS 5 появился собственный планировщик. В его настройках необходимо указать E-Mail на который будут отправляться оповещения о событиях и ошибках (например ошибки с информацией о невозможности подключения к почтовому серверу и т.д.). По умолчанию в параметрах указан E-Mail «root@localhost».

E-Mail для сообщений от планировщика

E-Mail для сообщений от планировщика

Уведомлений о заявках

Посмотрите настройки ваших уведомлений о заявках. В OTRS 5 они изменились и ваши старые уведомления отключены, вы можете их заново активировать (Администрирование > Настройки заявок > Уведомление по заявкам).

Дополнительные материалы

OTRS

PostgreSQL

The following two tabs change content below.
В профессиональной сфере занимаюсь всем, что связанно с IT. Основная специализация - VoIP и сети передачи данных. Стараюсь не заниматься Windows серверами (но иногда приходится) и 1С.

Добавить комментарий