Update OTRS from v5.x.x+ to v6.x.x+ on centos7

mm ByYOBIHAT TEAM

Update OTRS from v5.x.x+ to v6.x.x+ on centos7

Hi Tech Guys,

Sometimes OTRS need some care to be up-to-date and secure, than here you can find a right and easy way to update OTRS from v5 to v6 (IMPORTANT: only from any v5.x.x to any v6.x.x)

We recommend to test in a clone or test machine before to move and do any edit in a production environment (avoid disaster please).

The database migration from OTRS 5 to 6 performs significant changes to database tables and data. Be sure that there is enough storage space available to complete the migration. You cannot update from any OTRS version directly to OTRS 6. For example, if you come from OTRS 3.0, you first have to full update to OTRS 3.1, then to 3.2, 3.3, 4, 5 and finally to OTRS 6. If you have any custom Perl or XML configuration files in Kernel/Config/Files, these need to be converted to the new formats supported by OTRS 6 before running the migration script.

Requirements:

-Centos 7.3 server with minimal hardware configuration (depends of your needs).

-ROOT permission on server.

-Internet connection to download all needed packages.

-Good IT basic knowledge and a bit of patience…

Let’s Start!

Stop all services used by the ticketing system before proceding

systemctl stop crond
systemctl stop postfix
systemctl stop httpd

Move in the main path and stop daemon as otrs user

cd /opt/otrs/
su -c "/opt/otrs/bin/otrs.Daemon.pl stop" -s /bin/bash otrs
su -c "/opt/otrs/bin/Cron.sh stop" -s /bin/bash otrs

Backup otrs database and /opt/otrs/ folder, i prefer to keep safe everything on other location than the working server

mysqldump -p otrs > otrsdbbackup.sql
scp root@otrs.yobicloud.local:/root/otrsdbbackup.sql (your local path for backup)
scp -r root@otrs.yobicloud.local:/opt/otrs (your local path for backup)

Rename the old folder because you will need some files of your previous configuration, download the packages of the newer version (in this case the v5.0.21) decompress and rename the folder as the oldest, without the version number

yum update -y
cd /opt/
mv otrs otrs-old
wget http://ftp.otrs.org/pub/otrs/otrs-6.0.14.tar.gz
tar -xzf otrs-6.0.14.tar.gz
mv otrs-6.0.14 otrs

Move your olds config and ticket numbers files, from the backup folder to the new

cp /opt/otrs-old/Kernel/Config.pm /opt/otrs/Kernel/
cp /opt/otrs-old/Kernel/Config/Files/ZZZAuto.pm /opt/otrs/Kernel/Config/Files/

(Optional) If you store article data in the filesystem you have to restore the article folder, or the specified folder in the SysConfig if is tuned

(Optional) 
cp -rf /opt/otrs-old/var/article/ /opt/otrs/var/.

(Optional) Restore already installed default statistics. If you have additional packages with default statistics you have to restore the stats xml files with the suffix *.installed to /opt/otrs/var/stats.

(Optional) 
cd OTRS-BACKUP/var/stats
cp *.installed /opt/otrs/var/stats

Set the permission as root user, will detect the correct user and group settings needed for your setup

cd /opt/otrs/
bin/otrs.SetPermissions.pl

Check if some PERL modules are missing, and install any modules that might be needed for your configuration

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

The output will be something like this:

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 DateTime...................................Not installed! Use: 'yum install "perl(DateTime)"' (required)
o DBI........................................ok (v1.627)
o DBD::mysql.................................ok (v4.023)
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....................................Not installed! Use: 'yum install "perl(DBD::Pg)"' (optional - Required to connect to a PostgreSQL database.)
o Digest::SHA................................ok (v5.85)
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.............................FAILED! Not all prerequisites for this module correctly installed.
o Mail::IMAPClient...........................ok (v3.37)
o IO::Socket::SSL............................ok (v1.94)
o Authen::SASL...............................ok (v2.15)
o Authen::NTLM...............................ok (v1.09)
o ModPerl::Util..............................ok (v2.000010)
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 XML::LibXML................................ok (v2.0018)
o XML::LibXSLT...............................ok (v1.80)
o XML::Parser................................ok (v2.41)
o YAML::XS...................................ok (v0.54)

This is an update, than the installation of other modules are not necessary except for “perl(DateTime)”, because all you need was already installed, until you need to change DB.

The module “perl(DateTime)” is required from version 6 of otrs for the new features, otherwise the installation cannot proceed.

In my case i will not install any DB modules but only the required (note that LWP::UserAgent will be automagically installed after DateTime)

yum install "perl(DateTime)"

You can re-check the modules with the script

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

and if the missing will be only the DB packages other than your, you can proceed with the migration.

Is time to migrate…

This is required only If you have any custom Perl or XML configuration files in Kernel/Config/Files from previus version and need to be converted to the new formats supported by OTRS 6 before running the migration script more information here.

Important: Kernel/Config/Files/ZZZAuto.pm has been merged into Kernel/Config/Files/ZZZAAuto.pm.

If Between the folder /opt/otrs/Kernel/Config/Files/ and /opt/otrs-old/Kernel/Config/Files/ there are differents files .pm, copy the missing files from /opt/otrs-old/Kernel/Config/Files/ to /opt/otrs/Kernel/Config/Files/ except ZZZAuto.pm, if there are different .XML files, copy them in /opt/otrs/Kernel/Config/Files/

In my case, as you can see in the video i moved the files from my production envirorment to test the migration, you can move it from otrs-old folder if there are.

scp (your local path for backup)xmlotrs/* root@otrs.yobicloud.local:/opt/otrs/Kernel/Config/Files/

OTRS 6 uses a new XML configuration file format and the location of configuration files moved from Kernel/Config/Files to Kernel/Config/Files/XML. To convert existing XML configuration files to the new format and location, you can use the following tool that is part of the OTRS framework:

cd /opt/otrs/
su -c "bin/otrs.Console.pl Dev::Tools::Migrate::ConfigXMLStructure --source-directory Kernel/Config/Files/" -s /bin/bash otrs

Now is time to apply the database changes and update schema as otrs user NOT as root.

cd /opt/otrs
su -c "scripts/DBUpdate-to-6.pl" -s /bin/bash otrs

Last step is to update the installed packages because from OTRS 5 are not compatible with OTRS 6 and have to be updated.

You can use the command below to update all installed packages. This works for all packages that are available from online repositories. You can update other packages later via the package manager from GUI.

cd /opt/otrs/
su -c "bin/otrs.Console.pl Admin::Package::UpgradeAll" -s /bin/bash otrs

Restart your services

systemctl start httpd
systemctl start postfix
systemctl start crond

Start the daemon as otrs user.

su -c "/opt/otrs/bin/otrs.Daemon.pl start" -s /bin/bash otrs
su -c "/opt/otrs/bin/Cron.sh start" -s /bin/bash otrs

delete install packages, my sql backup, and otrs-old folder locate in /opt for the production server, to clean the machine or leave more space.

here the link for the official docs

—>>> ENJOY!!! <<<—

About the author

mm

YOBIHAT TEAM author

YOBIHAT TEAM is a group of expertise IT (Programmers, System & Network engineer, Optic Fiber Technician, Graphics, Blogger and Users) who follow Open Source philosophy, and will drive you in deep with the YOBICLOUD platform for DevOps.

Leave a Reply

2 × two =