这些说明适用于想升级OTRS版本的人群,从4到 5或从 5到版本5最近的补丁集。
如果你正运行在一个低版本的OTRS上,首先需要按如下升级顺序先升级到OTRS 4:1.1->1.2->1.3->2.0->2.1->2.2->2.3->2.4->3.0->3.1->3.2->3.3->4! 在每个版本间需要执行完全升级,包括修改数据库和升级的Perl脚本。
请注意:如果你从OTRS 2.2之前的版本升级,还需要参照执行额外的步骤。
在大版本内你可以跳过小版本升级,比如你可以直接从OTRS 5 补丁级别2直接升级到版本5补丁级别6。如果你只是升级补丁级别,可以跳过步骤6、10、11、14、17和18。
强烈建议在一台独立的测试主机上先进行升级测试。
请确保没有任何运行中的服务或CRON计划任务还在试图访问OTRS。取决于你的服务配置,下面是一个例子:
shell> /etc/init.d/cron stop shell> /etc/init.d/postfix stop shell> /etc/init.d/apache stop
取决于从个哪个版本升级,按以下顺序停止OTRS CRON计划任务或守护进程:
shell> cd /opt/otrs/ shell> bin/Cron.sh stop shell> bin/otrs.Scheduler.pl -a stop
或
shell> cd /opt/otrs/ shell> bin/Cron.sh stop shell> bin/otrs.Daemon.pl stop
Kernel/Config.pm
Kernel/Config/GenericAgent.pm
(仅供参考,这个文件不再需要)
Kernel/Config/Files/ZZZAuto.pm
var/*
当然还有数据库
shell> cd /opt shell> mv otrs otrs-old shell> tar -xzf otrs-x.x.x.tar.gz shell> mv otrs-x.x.x otrs
为了让OTRS继续使用正确的工单编号,恢复文件TicketCounter.log
到目录/opt/otrs/var/log/
。这对于使用自动增长的工单编号特别有用。
请执行
shell> cd /opt/otrs/ shell> bin/otrs.SetPermissions.pl
参数为你的系统设置需要的权限。例如:
以OTRS用户运行WEB服务器:
shell> bin/otrs.SetPermissions.pl --web-group=otrs
以wwwrun用户运行WEB服务器(如SUSE):
shell> bin/otrs.SetPermissions.pl --web-group=wwwrun
以apache用户运行WEB服务器(如Red Hat、CentOS):
shell> bin/otrs.SetPermissions.pl --web-group=apache
以www-data用户运行WEB服务器(如RDebian、 Ubuntu):
shell> bin/otrs.SetPermissions.pl --web-group=www-data
注意:在MySQL升级过程中会在默认的表存储引擎创建新表。在MySQL 5.5中,新的默认存储引擎是
InnoDB
。如果现有的表如‘users’表的表存储引擎是MyISAM
,则在创建外键约束时会报错。在这种情况下,我们推荐将所有的表切换到InnoDB
引擎,可通过执行命令行脚本切换:bin/otrs.Console.pl
Maint::Database::MySQL::InnoDBMigration。
任何与存储引擎相关的问题都可以通过命令检查出来:bin/otrs.Console.pl
Maint::Database::Check
,所以请运行这个命令来检查可能的问题。
shell> cd /opt/otrs/ shell> cat scripts/DBUpdate-to-5.mysql.sql | mysql -p -f -u root otrs shell> bin/otrs.Console.pl Maint::Database::Check
请运行(用otrs
用户,而不是root
用户):
shell> cd /opt/otrs/ shell> bin/otrs.Console.pl Maint::Config::Rebuild shell> bin/otrs.Console.pl Maint::Cache::Delete
例如(取决于使用的服务,可能有差异):
shell> /etc/init.d/apache start shell> /etc/init.d/postfix start shell> /etc/init.d/cron start
现有你可以登录到系统了。
OTRS 4的软件包与OTRS 5不兼容,所以你还需要升级软件包!
下列软件会在升级过程中自动卸载(如果之前安装了的话):
OTRSGenericInterfaceMappingXSLT
这一步仅在你有多台前端主机的群集安装时才需要。
从OTRS
5开始,每个前端服务器需要有它自己唯一的NodeID
(节点编号)。对单前端安装来说默认就是1
,不需要配置。如果有多台主机,每台主机都需要设置这个唯一值,可为从1
到999
的任一值。这个配置在文件Kernel/Config.pm
中。
$Self->{'NodeID'} = '2'; # 为每个前端服务器分配一个唯一的值
跟进检测设置被重新组织了。现在OTRS默认在邮件主题和引用内容中搜索来检测是否为跟进邮件。如果你想修改跟进检测设置(比如在正文、附件或原始邮件内容中搜索),请在系统管理的系统配置
Ticket
-> Core::PostMaster
中检查设置。
新的OTRS守护进程负责处理OTRS中的所有异步和循环任务。之前在cron文件中定义的自动任务现在都由OTRS守护进程处理。这个守护进程还处理所有的‘GenericAgent自动任务’任务,它必须以otrs
用户运行。
shell> /opt/otrs/bin/otrs.Daemon.pl start
在/opt/otrs/var/cron/*.dist
有两个默认的cron文件,它们的目的是确保OTRS守护进程正常运行。它们需要复制为没有“.dist”扩展名的新文件来激活。
shell> cd /opt/otrs/var/cron shell> for foo in *.dist; do cp $foo `basename $foo .dist`; done
要在系统中安排这些cron任务,你可以使用otrs
运行脚本文件Cron.sh
。
shell> /opt/otrs/bin/Cron.sh start
请注意:如果你有定制的cron任务,应该考虑将它们移到系统配置Daemon
->
Daemon::SchedulerCronTaskManager::Task
中,以便由OTRS守护进程来统一执行。你可能还需要修改你的定制脚本,因为现在大部分OTRS命令都通过bin/otrs.Console.pl
统一管理,而不是单个的脚本。
控制台命令Dev::Code::Generate::ConsoleCommand
可以帮助创建新的控制台命令用来定制脚本。这个命令会创建一个模板,可以调整其中的脚本逻辑和相关参数。
在OTRS 5中工单通知配置与之前的版本不一样。它们现在是“事件通知”(以前的版本也有)的一部分(现在被称为“工单通知”)。你原有的工单通知已经迁移到工单通知列表中,但没有激活。你还会接收到新的默认工单通知(默认激活的)。
如果你没有修改老版本中的工单通知你就不需要再做任何事情。如果你做了本地的修改或翻译,可有两个选择:a) 你可以迁移你的修改内容到新的工单通知(推荐),或b)你可以不激活新的通知并重新激活老版本的通知。
还要检查升级通知收件人设置,看看是否匹配你的期望值(工单在其队列中服务人员 vs
拥有读取权限的所有服务人员)。这个设置之前是通过文件Kernel/Config/GenericAgent.pm
(现已废弃)来配置的,现在可以通过图形界面中每个通知类型单独控制。
如果系统已经注册到OTRS集团,强烈推荐这个时候更新注册信息。这将在OTRS集团的记录中更新注册的版本信息及其它变化了的信息,以便从云服务中获得更准确的信息。
如果你不手动更新注册信息,则会在定期连接时自动更新,但这可能是几个小时或几天后的事了,在此期间可能会从云服务得到一些错误信息比如:OTRS Business Solution™更新。
shell> cd /opt/otrs/ shell> bin/otrs.Console.pl Maint::Registration::UpdateSend --force shell> bin/otrs.Console.pl Maint::Cache::Delete
这一步仅与你有任何定制的自动任务使用了OTRS
4的Perl配置文件如Kernel/Config/GenericAgent.pm
有关,这些任务不再能由定期的工单通知处理。这些任务现在需要在系统配置(Daemon
->
Daemon::SchedulerCronTaskManager::Task
)中注册为OTRS守护进程的cron任务,以便能够定期执行。
在系统配置中为此准备了5个设置参数(Daemon::SchedulerCronTaskManager::Task###GenericAgentFile1
到Daemon::SchedulerCronTaskManager::Task###GenericAgentFile5
)。如果还不够,可以添加到一个定制的系统配置文件中。
请用<ModuleName<替换包含定制的自动任务的配置文件名,如用Kernel::Config::GenericAgent
替换Kernel/Config/GenericAgent.pm
,按以前的执行周期设置计划时间,选中这个参数(激活)并保存修改。
要获取关于运行自动任务参数的更多信息,请执行以下语句:
shell> bin/otrs.Console.pl Maint::GenericAgent::Run --help
所有的常规OTRS命令操作现在都通过OTRS控制台接口
bin/otrs.Console.pl
执行。它提供bash的自动补齐功能,在查找正确的命令和选项时更容易些。
你可以安装软件包bash-completion
来激活bash的自动补齐功能。它能为otrs
用户自动检测到并载入文件/opt/otrs/.bash_completion
。
重启shell后,你可以在输入bin/otrs.Console.pl
后按TAB键,就会显示所有可用的命令。如果你键入了命令的部分字符,按TAB键会列出所有匹配这些字符的命令。在输入完整的命令后,按TAB键会列出所有可用的选项和参数。
一些工单操作窗口比如“备注”在OTRS
4中有默认的主题(‘备注’的默认主题可通过系统配置参数Ticket::Frontend::AgentTicketNote###Subject
设置)。这些默认的主题已经被移除了,以便减少潜在的冗余或无意义的数据。如果这些对你很重要,可以重新添加。
由于在 OTRS
5s的修正BUG,一些工单事件模块的配置名称必须被修改。任何可能的定制都需要重新应用。请检查您在SysConfig
-> Ticket -> Core::Ticket
的设置并检查以
Ticket::EventModulePost
开头的所有定制设置是否需要重新应用。例如,你已经激活并配置的事件处理程序以将客户数据保存在工单动态字段中的设置。