Atualizar OTRS 5 para otrs 6 no Debian/Ubuntu

Atualizar OTRS 5 para otrs 6 no Debian/Ubuntu

Sabemos que é importante manter as ferramentas que utilizamos em nosso ambiente de trabalho atualizada. Não é diferente para o OTRS. Aqui, você pode encontrar uma maneira fácil e correta de atualizar o OTRS da v5 para a v6.

Confira a instalação do OTRS no Debian/Ubuntu

Instalação do OTRS com PostgreSQL no Debian 10

let's go...

1. Backup do OTRS 5

Antes da atualização, é recomendado que se faça um backup dos arquivos de configuração do OTRS juntamente com seu banco de dados, isso poderá ser muito útil para retornar rapidamente a uma versão anterior. Além disso, é bom fazer esse procedimento em um servidor de teste primeiro, afim de evitar possíveis dor de cabeça.

Ademais, como informa a nota oficial sobre a atualização da versão 5: Você pode atualizar de qualquer nível de patch do OTRS 5 para a versão mais recente disponível do nível de patch do OTRS 6.

Façamos o backup do OTRS 5.

# /opt/otrs/scripts/backup.pl -d /root

2. Parando alguns serviços

Antes de iniciarmos a migração do OTRS 5 para OTRS 6, é necessário parar alguns serviços críticos do OTRS afim de manter a integridade dos dados.

# su -c "/opt/otrs/bin/Cron.sh stop" -s /bin/bash otrs
# su -c "/opt/otrs/bin/otrs.Daemon.pl stop" -s /bin/bash otrs
# systemctl stop apache2
# systemctl stop cron
# systemctl stop mysql | postgresql | entre outros SGBD

3. Download da versão 6 do OTRS

Vamos fazer o download e a descompactação da última release da versão 6 do OTRS.

# cd /opt
# wget ftp.otrs.org/pub/otrs/otrs-latest-6.0.tar.gz
# tar zxvf otrs-latest-6.0.tar.gz
# rm otrs-latest-6.0.tar.gz

4. Alterando diretórios de hospedagem do OTRS

O diretório atual da versão 5 do OTRS precisa ser renomeado, pois este diretório será utilizado para receber a versão 6 do OTRS.

# mv /opt/otrs /opt/otrs5-old
# mv /opt/otrs-6.x.x otrs/

Aproveitaremos alguns arquivos de configuração do OTRS. Vamos copiar três arquivos que estão no diretório da versão 5 do OTRS /opt/otrs5-old/ para o novo diretório onde agora se encontra a versão 6 do OTRS /opt/otrs5/.

# cp otrs5-old/Kernel/Config.pm otrs/Kernel/
# cp otrs5-old/Kernel/Config/Files/ZZZAAuto.pm otrs/Kernel/Config/Files/
# cp otrs5-old/Kernel/Config/Files/ZZZAAuto.pm otrs/Kernel/Config/Files/

5. Ajustando permissões

# /opt/otrs/bin/otrs.SetPermissions.pl --otrs-user=otrs --web-group=www-data /opt/otrs

6. Checagem de pacotes

Precisamos verificar se todos os pacotes necessários para a instalação do OTRS estão previamente instalados  afim de garantir que o sistema esteja pronto para a instalação do OTRS.

# apt update
# apt install libdatetime-perl -y
# apt install libxml-libxml-perl -y
# /opt/otrs/bin/otrs.CheckModules.pl
  o Apache::DBI......................ok (v1.12)
  o Apache2::Reload..................ok (v0.13)
  o Archive::Tar.....................ok (v2.30)
  o Archive::Zip.....................ok (v1.64)
  o Crypt::Eksblowfish::Bcrypt.......ok (v0.009)
  o Crypt::SSLeay....................ok (v0.73_06)
  o Date::Format.....................ok (v2.24)
  o DateTime.........................ok (v1.50)
  o DBI..............................ok (v1.642)
  o DBD::mysql.......................Not installed! To install, you can use: 'apt-get install -y libdbd-mysql-perl'. (optional - Required to connect to a MySQL database.)
  o DBD::ODBC........................Not installed! To install, you can use: 'apt-get install -y libdbd-odbc-perl'. (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 (v3.7.4)
  o Digest::SHA......................ok (v6.01)
  o Encode::HanExtra.................ok (v0.23)
  o IO::Socket::SSL..................ok (v2.060)
    Please consider updating to version 2.066 or higher: This version fixes email sending (bug#14357).
  o JSON::XS.........................ok (v3.04)
  o List::Util::XS...................ok (v1.50)
  o LWP::UserAgent...................ok (v6.26)
  o Mail::IMAPClient.................ok (v3.42)
    o IO::Socket::SSL................ok (v2.060)
    Please consider updating to version 2.066 or higher: This version fixes email sending (bug#14357).
    o Authen::SASL...................ok (v2.16)
    o Authen::NTLM...................Not installed! To install, you can use: 'apt-get install -y libauthen-ntlm-perl'. (optional - Required for NTLM authentication mechanism in IMAP connections.)
  o ModPerl::Util....................ok (v2.000010)
  o Net::DNS.........................ok (v1.19)
  o Net::LDAP........................ok (v0.65)
  o Net::SMTP........................ok (v3.11)
  o Template.........................ok (v2.27)
  o Template::Stash::XS..............ok (undef)
  o Text::CSV_XS.....................ok (v1.38)
  o Time::HiRes......................ok (v1.9759)
  o XML::LibXML......................ok (v2.0134)
  o XML::LibXSLT.....................ok (v1.96)
  o XML::Parser......................ok (v2.44)
  o YAML::XS.........................ok (v0.76)

7. Atualizando a base de dados do OTRS

Esse procedimento é um dos mais importantes. Será executado um script do OTRS 6 que fará a atualização da estrutura da base de dados suportada pela versão 5 do OTRS para uma nova estrutura da base de dados suportada pela versão 6. Mas não se preocupe, todos os seus dados serão preservados.

# systemctl start mysql
# su -c "/opt/otrs/scripts/DBUpdate-to-6.pl" -s /bin/bash otrs

Após a execução do script, serão realizadas algumas perguntas. Na primeira pergunta "Did you backup the database" digite "Yes". Ás próximas perguntas serão relacionadas ao fuso horário de sua região, o próprio OTRS irá listar diversos fuso horários aproximados da sua região, escolha um deles, no meu caso, estarei escolhendo "America/Fortaleza". Caso não seja listado o fuso horário que você utiliza, pesquise na internet ou abra um novo terminal e emita o comando "cd /usr/share/zoneinfo/posix && find * -type f -or -type l | sort | grep -i cidade" para buscar um fuso horário de sua preferência.


 Migration started ...

 Checking requirements ...
    Requirement check for: Check framework version ...
    Requirement check for: Check required Perl version ...
    Requirement check for: Check required database version ...
    Requirement check for: Check database charset ...
    Requirement check for: Check required Perl modules ...
    Requirement check for: Check if database has been backed up ...
        Did you backup the database? [Y]es/[N]o: Yes
    Requirement check for: Upgrade database structure ...
    Requirement check for: Migrating time zone configuration ...
        The currently configured time offset is -3 hours, these are the suggestions for a corresponding OTRS time zone:
        America/Araguaina
        America/Argentina/Buenos_Aires
        America/Argentina/Catamarca
        America/Argentina/Cordoba
        America/Argentina/Jujuy
        America/Argentina/La_Rioja
        America/Argentina/Mendoza
        America/Argentina/Rio_Gallegos
        America/Argentina/Salta
        America/Argentina/San_Juan
        America/Argentina/San_Luis
        America/Argentina/Tucuman
        America/Argentina/Ushuaia
        America/Asuncion
        America/Bahia
        America/Belem
        America/Cayenne
        America/Fortaleza
        America/Godthab
        America/Maceio
        America/Miquelon
        America/Montevideo
        America/Paramaribo
        America/Punta_Arenas
        America/Recife
        America/Santarem
        America/Santiago
        America/Sao_Paulo
        Antarctica/Palmer
        Antarctica/Rothera
        Atlantic/Stanley

        It seems that America/Fortaleza should be the correct time zone to set for your OTRS.
        Enter the time zone to use for OTRSTimeZone (leave empty to show a list of all available time zones): America/Fortaleza
        Enter the time zone to use for UserDefaultTimeZone (leave empty to show a list of all available time zones): America/Fortaleza
        Enter the time zone to use for TimeZone::Calendar1 (leave empty to show a list of all available time zones): America/Fortaleza
        Enter the time zone to use for TimeZone::Calendar2 (leave empty to show a list of all available time zones): America/Fortaleza
        Enter the time zone to use for TimeZone::Calendar3 (leave empty to show a list of all available time zones): America/Fortaleza
        Enter the time zone to use for TimeZone::Calendar4 (leave empty to show a list of all available time zones): America/Fortaleza
        Enter the time zone to use for TimeZone::Calendar5 (leave empty to show a list of all available time zones): America/Fortaleza
        Enter the time zone to use for TimeZone::Calendar6 (leave empty to show a list of all available time zones): America/Fortaleza
        Enter the time zone to use for TimeZone::Calendar7 (leave empty to show a list of all available time zones): America/Fortaleza
        Enter the time zone to use for TimeZone::Calendar8 (leave empty to show a list of all available time zones): America/Fortaleza
        Enter the time zone to use for TimeZone::Calendar9 (leave empty to show a list of all available time zones): America/Fortaleza
    Requirement check for: Update calendar appointment future tasks ...
    Requirement check for: Migrate GenericAgent jobs configuration ...
    Requirement check for: Migrate TicketAppointment rules configuration ...
    Requirement check for: Create entries in new article table ...
    Requirement check for: Migrate ArticleType in ProcessManagement Data ...
    Requirement check for: Migrate ArticleType in PostMaster filters ...
 Executing tasks ...
    Step 1 of 44: Check framework version ...
    Step 2 of 44: Check required Perl version ...
    Step 3 of 44: Check required database version ...
    Step 4 of 44: Check database charset ...
    Step 5 of 44: Check required Perl modules ...
    Step 6 of 44: Check installed CPAN modules for known vulnerabilities ...
    Step 7 of 44: Check if database has been backed up ...
    Step 8 of 44: Upgrade database structure ...
    Step 9 of 44: Migrate configuration ...
    Step 10 of 44: Refresh configuration cache after migration of OTRS 5 settings ...
    Step 11 of 44: Migrating ticket storage configuration ...
    Step 12 of 44: Migrating article search index configuration ...
    Step 13 of 44: Migrating ticket zoom customer information widget configuration ...
    Step 14 of 44: Drop deprecated table gi_object_lock_state ...
    Step 15 of 44: Migrate PossibleNextActions setting ...
    Step 16 of 44: Migrate ZoomExpand setting ...
    Step 17 of 44: Migrating time zone configuration ...
    Step 18 of 44: Migrating modified settings ...
    Step 19 of 44: Create appointment calendar tables ...
    Step 20 of 44: Create ticket number counter tables ...
    Step 21 of 44: Update calendar appointment future tasks ...
    Step 22 of 44: Add basic appointment notification for reminders ...
    Step 23 of 44: Create Form Draft tables ...
    Step 24 of 44: Clean and drop group_user permission_value column ...
    Step 25 of 44: Migrate GenericAgent jobs configuration ...
    Step 26 of 44: Migrate TicketAppointment rules configuration ...
    Step 27 of 44: Migrate Merged Ticket history name values ...
    Step 28 of 44: Migrate ticket statistics ...
    Step 29 of 44: Migrate ticket notifications ...
    Step 30 of 44: Create entries in new article table ...
    Step 31 of 44: Post changes on article related tables ...
    Step 32 of 44: Migrate ArticleType in ProcessManagement Data ...
    Step 33 of 44: Migrate ArticleType in PostMaster filters ...
    Step 34 of 44: Migrate chat articles ...
    Step 35 of 44: Initialize default cron jobs ...
    Copying /opt/otrs/var/cron/aaa_base.dist to /opt/otrs/var/cron/aaa_base...
    done.
    Copying /opt/otrs/var/cron/otrs_daemon.dist to /opt/otrs/var/cron/otrs_daemon...
    done.
    Step 36 of 44: Migrate web service configuration ...
    Step 37 of 44: Migrate package repository configuration ...
    Step 38 of 44: Migrate ticket search profiles ...
    Step 39 of 44: Uninstall Merged Feature Add-Ons ...
    Step 40 of 44: Clean up the cache ...
    Step 41 of 44: Refresh configuration cache another time ...
    Step 42 of 44: Deploy ACLs ...
    Step 43 of 44: Deploy processes ...
    Step 44 of 44: Check invalid settings ...

 Migration completed!

O último passo é atualizar os pacotes instalados, pois o OTRS 5 não é compatível com o OTRS 6 e precisa ser atualizado.

Você pode usar o comando abaixo para atualizar todos os pacotes instalados. Isso funciona para todos os pacotes disponíveis em repositórios online. Você pode atualizar outros pacotes posteriormente através do gerenciador de pacotes na GUI.

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

8. Excluir o cache do OTRS

# su -c "/opt/otrs/bin/otrs.Console.pl Maint::Cache::Delete" -s /bin/bash otrs

9. Inicializando serviços

# systemctl start apache2
# systemctl start cron
# systemctl start mysql
# 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

Prontinho, agora basta abrir a página WEB do OTRS e verificar se a atualização ocorreu com sucesso. Você perceberá a diferença na página login.

página inicial do otrs

Então é isso pessoal, obrigado por acompanhar até aqui o tutorial. Abraços!