公司的zimbra 8.5.0用了差不多一年,看zimbra发布了新版本,直接升级8.7.1失败,于是先升级到8.6.0,希望能后续能直接升级到8.7.1,后来发现是绕不开的坑,必须把问题解决了才可以。于是在备份好系统快照的前提下,参考网络上的资料,开始了以下的升级。follow me…….

 

1、系统环境:    

cat /etc/system-release    
CentOS Linux release 7.3.1611 (Core)    
uname -a    
Linux mail.abc.com 3.10.0-514.2.2.el7.x86_64 #1 SMP Tue Dec 6 23:06:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux    
zmcontrol -v    
Release 8.6.0_GA_1153.RHEL7_64

2、下载zimbra 8.7.1_GA安装包解压后运行install.sh进行升级

[root@mail zcs-8.7.1_GA_1670.RHEL7_64.20161025045328]# ./install.sh    

Operations logged to /tmp/install.log.O3wRPSxA    
Checking for existing installation...    
    zimbra-ldap...FOUND zimbra-ldap-8.6.0_GA_1153    
    zimbra-logger...FOUND zimbra-logger-8.6.0_GA_1153    
    zimbra-mta...FOUND zimbra-mta-8.6.0_GA_1153    
    zimbra-dnscache...NOT FOUND    
    zimbra-snmp...FOUND zimbra-snmp-8.6.0_GA_1153    
    zimbra-store...FOUND zimbra-store-8.6.0_GA_1153    
    zimbra-apache...FOUND zimbra-apache-8.6.0_GA_1153    
    zimbra-spell...FOUND zimbra-spell-8.6.0_GA_1153    
    zimbra-convertd...NOT FOUND    
    zimbra-memcached...FOUND zimbra-memcached-8.6.0_GA_1153    
    zimbra-proxy...FOUND zimbra-proxy-8.6.0_GA_1153    
    zimbra-archiving...NOT FOUND    
    zimbra-core...FOUND zimbra-core-8.6.0_GA_1153    
ZCS upgrade from 8.6.0 to 8.7.1 will be performed.    
Checking for existing proxy service in your environment    
Error: proxy not enabled    
Error: No proxy detected in your environment. Proxy is required for ZCS 8.7+.    
See for details on installing proxy.    
Checking for existing memcached service in your environment    
Proxy and Memcached services must exist. Exiting...

显示以下错误:

Error: proxy not enabled    

Error: No proxy detected in your environment. Proxy is required for ZCS 8.7+.

运行zmprov ms 启用proxy功能,mail.abc.com为示例主机名,根据自己的实际主机名进行修改。

[root@mail zcs-8.7.1_GA_1670.RHEL7_64.20161025045328]# zmprov ms mail.abc.com +zimbraServiceEnabled proxy

另如果是以下报错    

     Error: One or more proxies do not have zimbraReverseProxyMailEnabled and zimbraReverseProxyHttpEnabled set to TRUE.    
It is required to have at least one proxy with zimbraReverseProxyMailEnabled and at least one proxy with zimbraReverseProxyHttpEnabled for ZCS 8.7+

则执行以下命令:    

    zmprov ms mail.abc.com zimbraReverseProxyMailEnabled TRUE    
    zmprov ms mail.abc.com zimbraReverseProxyHttpEnabled TRUE    
查询proxy相关状态可以用命令:zmprov gcf zimbraReverseProxyHttp zimbraReverseProxyMail

3、执行完zmprov ms mail.abc.com +zimbraServroxy后继续运行install.sh

以下为安装过程显示,显示内容比较长,浏览一下即可

Operations logged to /tmp/install.log.zWezd512    

Checking for existing installation...    
    zimbra-ldap...FOUND zimbra-ldap-8.6.0_GA_1153    
    zimbra-logger...FOUND zimbra-logger-8.6.0_GA_1153    
    zimbra-mta...FOUND zimbra-mta-8.6.0_GA_1153    
    zimbra-dnscache...NOT FOUND    
    zimbra-snmp...FOUND zimbra-snmp-8.6.0_GA_1153    
    zimbra-store...FOUND zimbra-store-8.6.0_GA_1153    
    zimbra-apache...FOUND zimbra-apache-8.6.0_GA_1153    
    zimbra-spell...FOUND zimbra-spell-8.6.0_GA_1153    
    zimbra-convertd...NOT FOUND    
    zimbra-memcached...FOUND zimbra-memcached-8.6.0_GA_1153    
    zimbra-proxy...FOUND zimbra-proxy-8.6.0_GA_1153    
    zimbra-archiving...NOT FOUND    
    zimbra-core...FOUND zimbra-core-8.6.0_GA_1153    
ZCS upgrade from 8.6.0 to 8.7.1 will be performed.    
Checking for existing proxy service in your environment    
Checking for existing memcached service in your environment    
Validating ldap configuration    
LDAP validation succeeded.  Continuing.

Do you agree with the terms of the software license agreement? [N] y

Checking current number of databases...

Do you want to verify message store database integrity? [Y] y    

Verifying integrity of message store databases.  This may take a while.    
mysqld is alive    
No errors found

Checking for installable packages

Found zimbra-core    

Found zimbra-ldap    
Found zimbra-logger    
Found zimbra-mta    
Found zimbra-dnscache    
Found zimbra-snmp    
Found zimbra-store    
Found zimbra-apache    
Found zimbra-spell    
Found zimbra-memcached    
Found zimbra-proxy

Use Zimbra's package repository [Y] n

The Zimbra Collaboration Server appears to already be installed.    

It can be upgraded with no effect on existing accounts,    
or the current installation can be completely removed prior    
to installation for a clean install.

Do you wish to upgrade? [Y] y

Scanning for any new or additional packages available for installation    

Existing packages will be upgraded    
    Upgrading zimbra-core    
    Upgrading zimbra-ldap    
    Upgrading zimbra-logger    
    Upgrading zimbra-mta

Install zimbra-dnscache [N] n    

    Upgrading zimbra-snmp    
    Upgrading zimbra-store    
    Upgrading zimbra-apache    
    Upgrading zimbra-spell    
    Upgrading zimbra-memcached    
    Upgrading zimbra-proxy    
Checking required space for zimbra-core    
Checking space for zimbra-store    
Checking required packages for zimbra-store    
zimbra-store package check complete.

Installing:    

    zimbra-core    
    zimbra-ldap    
    zimbra-logger    
    zimbra-mta    
    zimbra-snmp    
    zimbra-store    
    zimbra-apache    
    zimbra-spell    
    zimbra-memcached    
    zimbra-proxy

The system will be modified.  Continue? [N] y    

Installing packages

zimbra-core will be downloaded.    

zimbra-ldap will be downloaded.    
zimbra-logger will be downloaded.    
zimbra-mta will be downloaded.    
zimbra-snmp will be downloaded.    
zimbra-store will be downloaded.    
zimbra-apache will be downloaded.    
zimbra-spell will be downloaded.    
zimbra-memcached will be downloaded.    
zimbra-proxy will be downloaded.    
Downloading packages. This will not modify the system. This may take some time.    
Downloading Remote package zimbra-memcached version    
Unable to download packages zimbra-memcached from repository. System is not modified.

Saving existing configuration file to /opt/zimbra/.saveconfig

Shutting down zimbra mail

Backing up the ldap database...done.

Removing existing packages

   zimbra-ldap...done    

   zimbra-logger...done    
   zimbra-mta...done    
   zimbra-snmp...done    
   zimbra-store...done    
   zimbra-spell...done    
   zimbra-memcached...done    
   zimbra-proxy...done    
   zimbra-apache...done    
   zimbra-core...done

Removing deployed webapp directories    

Local packages  zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-snmp zimbra-store zimimbra-spell zimbra-proxy selected for installation    
Monitor /tmp/install.log.zWezd512 for package installation progress    
Remote package installation started    
Installing zimbra-core-components  zimbra-ldap-components zimbra-mta-components zimbra-snmp-cmbra-store-components zimbra-apache-components zimbra-spell-components zimbra-memcached zimbronents....    
ERROR: Unable to install required packages    
WARNING: REMOTE PACKAGE INSTALLATION FAILED.    
To proceed, review the instructions at:    
   
Failure to follow the instructions on the wiki will result in complete data loss.

出现报错。看提示估计连接至官网Remote package zimbra-memcached等更新组件包下载或安装出现错误,具体可见安装log档

4、使用一下命令进行跳过升级检查强制升级

[root@mail zcs-8.7.1_GA_1670.RHEL7_64.20161025045328]# ./install.sh --force-upgrade --skip-acck --skip-upgrade-check

Operations logged to /tmp/install.log.ilBy9p3q    

Checking for existing installation...    
    zimbra-ldap...NOT FOUND    
    zimbra-logger...NOT FOUND    
    zimbra-mta...NOT FOUND    
    zimbra-dnscache...NOT FOUND    
    zimbra-snmp...NOT FOUND    
    zimbra-store...NOT FOUND    
    zimbra-apache...NOT FOUND    
    zimbra-spell...NOT FOUND    
    zimbra-convertd...NOT FOUND    
    zimbra-memcached...NOT FOUND    
    zimbra-proxy...NOT FOUND    
    zimbra-archiving...NOT FOUND    
    zimbra-core...NOT FOUND

Do you agree with the terms of the software license agreement? [N] y

Checking current number of databases...

Checking for installable packages

Found zimbra-core    

Found zimbra-ldap    
Found zimbra-logger    
Found zimbra-mta    
Found zimbra-dnscache    
Found zimbra-snmp    
Found zimbra-store    
Found zimbra-apache    
Found zimbra-spell    
Found zimbra-memcached    
Found zimbra-proxy

Use Zimbra's package repository [Y] n

Do you wish to upgrade? [Y] y

Scanning for any new or additional packages available for installation    

Existing packages will be upgraded    
    Upgrading zimbra-core

Install zimbra-ldap [N] y

Install zimbra-logger [N] y

Install zimbra-mta [N] y

Install zimbra-dnscache [N] y

Install zimbra-snmp [N] y

Install zimbra-store [N] y

Install zimbra-apache [N] y

Install zimbra-spell [N] y

Install zimbra-memcached [N] y

Install zimbra-proxy [N] y    

Checking required space for zimbra-core    
Checking space for zimbra-store    
Checking required packages for zimbra-store    
zimbra-store package check complete.

Installing:    

    zimbra-core    
    zimbra-ldap    
    zimbra-logger    
    zimbra-mta    
    zimbra-dnscache    
    zimbra-snmp    
    zimbra-store    
    zimbra-apache    
    zimbra-spell    
    zimbra-memcached    
    zimbra-proxy

The system will be modified.  Continue? [N] y    

Installing packages

zimbra-core will be downloaded.    

zimbra-ldap will be downloaded.    
zimbra-logger will be downloaded.    
zimbra-mta will be downloaded.    
zimbra-dnscache will be downloaded.    
zimbra-snmp will be downloaded.    
zimbra-store will be downloaded.    
zimbra-apache will be downloaded.    
zimbra-spell will be downloaded.    
zimbra-memcached will be downloaded.    
zimbra-proxy will be downloaded.    
Downloading packages. This will not modify the system. This may take some time.    
./util/modules/packages.sh: line 74: [: -lt: unary operator expected    
./util/modules/packages.sh: line 74: [: too many arguments    
Local packages  zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-dnscache zimbra-snmp zimbra-store zimbra-apache zimbra-spell zimbra-proxy selected for installation    
Monitor /tmp/install.log.ilBy9p3q for package installation progress    
Remote package installation started    
Installing zimbra-core-components  zimbra-ldap-components zimbra-mta-components zimbra-dnscache-components zimbra-snmp-components zimbra-store-components zimbra-apache-components zimbra-spell-components zimbra-memcached zimbra-proxy-components....done    
Local package installation started    
Installing  zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-dnscache zimbra-snmp zimbra-store zimbra-apache zimbra-spell zimbra-proxy...done    
done

Setting defaults from saved config in /opt/zimbra/.saveconfig/config.save    

   HOSTNAME=mail.abc.com    
   LDAPHOST=mail.abc.com    
   LDAPPORT=389    
   SNMPTRAPHOST=mail.abc.com    
   SMTPSOURCE=admin@abc.com    
   SMTPDEST=admin@abc.com    
   SNMPNOTIFY=yes    
   SMTPNOTIFY=yes    
   LDAPROOTPW=*    
   LDAPZIMBRAPW=*    
   LDAPPOSTPW=*    
   LDAPREPPW=*    
   LDAPAMAVISPW=*    
   LDAPNGINXPW=*    
Restoring existing configuration file from /opt/zimbra/.saveconfig/localconfig.xml...done    
Operations logged to /tmp/zmsetup.20161216-163705.log    
Adding /opt/zimbra/conf/ca/ca.pem to cacerts    
Upgrading from 8.6.0_GA_1194 to 8.7.1_GA_1670    
Stopping zimbra services...done.    
This appears to be 8.6.0_GA    
Starting mysql...done.    
Checking ldap status...not running.    
Checking ldap status...not running.    
Starting ldap...done.    
Checking ldap status...already running.    
Schema upgrade required from version 103 to 107.    
Running /opt/zimbra/libexec/scripts/migrate20150401-ZmgDevices.pl    
Fri Dec 16 16:38:34 2016: Verified schema version 103.    
Fri Dec 16 16:38:34 2016: Verified schema version 103.    
Fri Dec 16 16:38:34 2016: Updating DB schema version from 103 to 104.    
Running /opt/zimbra/libexec/scripts/migrate20150515-DataSourcePurgeTables.pl    
Fri Dec 16 16:38:36 2016: Verified schema version 104.    
Fri Dec 16 16:39:20 2016: Verified schema version 104.    
Fri Dec 16 16:39:20 2016: Updating DB schema version from 104 to 105.    
Running /opt/zimbra/libexec/scripts/migrate20150623-ZmgDevices.pl    
Fri Dec 16 16:39:22 2016: Verified schema version 105.    
Fri Dec 16 16:39:22 2016: Verified schema version 105.    
Fri Dec 16 16:39:22 2016: Updating DB schema version from 105 to 106.    
Running /opt/zimbra/libexec/scripts/migrate20150702-ZmgDevices.pl    
Fri Dec 16 16:39:24 2016: Verified schema version 106.    
Fri Dec 16 16:39:26 2016: Verified schema version 106.    
Fri Dec 16 16:39:26 2016: Updating DB schema version from 106 to 107.    
Stopping mysql...done.    
Updating from 8.6.1_GA    
Updating from 8.7.0_BETA1    
Updating mailboxd_java_options to remove deprecated PermSize and MaxPermSize java options.    
Updating from 8.7.0_BETA2    
Updating from 8.7.0_RC1    
Updating from 8.7.0_RC2    
Updating from 8.7.0_GA    
Updating from 8.7.1_GA    
Updating global config and COS's with attributes introduced after 8.6.0_GA...done.    
Stopping ldap...done.    
Upgrade complete.

Checking ldap status....not running.    

Starting ldap...done.    
Setting defaults...done.    
Setting defaults from existing config...done.    
Checking for port conflicts    
Setting defaults from ldap...done.

Main menu

   1) Common Configuration:                                                 

   2) zimbra-ldap:                             Enabled                      
   3) zimbra-logger:                           Enabled                      
   4) zimbra-mta:                              Enabled                      
   5) zimbra-dnscache:                         Enabled                      
******* +Master DNS IP address(es):            UNSET                        
        +Enable DNS lookups over TCP:          yes                          
        +Enable DNS lookups over UDP:          yes                          
        +Only allow TCP to communicate with Master DNS: no                           

   6) zimbra-snmp:                             Enabled                      

   7) zimbra-store:                            Enabled                      
   8) zimbra-spell:                            Disabled                     
   9) zimbra-proxy:                            Enabled                      
  10) Default Class of Service Configuration:                               
   s) Save config to file                                                   
   x) Expand menu                                                           
   q) Quit                                   

Address unconfigured (**) items  (? - help) 5

DNS Cache configuration

   1) Status:                                  Enabled                      

** 2) Master DNS IP address(es):               UNSET                        
   3) Enable DNS lookups over TCP:             yes                          
   4) Enable DNS lookups over UDP:             yes                          
   5) Only allow TCP to communicate with Master DNS: no                           

Select, or 'r' for previous menu [r] 2

IP Address(es) of Master DNS Server(s), space separated: 61.177.7.1

DNS Cache configuration

   1) Status:                                  Enabled                      

   2) Master DNS IP address(es):               61.177.7.1                   
   3) Enable DNS lookups over TCP:             yes                          
   4) Enable DNS lookups over UDP:             yes                          
   5) Only allow TCP to communicate with Master DNS: no                           

Select, or 'r' for previous menu [r] r

Main menu

   1) Common Configuration:                                                 

   2) zimbra-ldap:                             Enabled                      
   3) zimbra-logger:                           Enabled                      
   4) zimbra-mta:                              Enabled                      
   5) zimbra-dnscache:                         Enabled                      
   6) zimbra-snmp:                             Enabled                      
   7) zimbra-store:                            Enabled                      
   8) zimbra-spell:                            Disabled                     
   9) zimbra-proxy:                            Enabled                      
  10) Default Class of Service Configuration:                               
   s) Save config to file                                                   
   x) Expand menu                                                           
   q) Quit                                   

*** CONFIGURATION COMPLETE - press 'a' to apply    

Select from menu, or press 'a' to apply config (? - help) a    
Saving config in /opt/zimbra/config.13058...done.    
Operations logged to /tmp/zmsetup.20161216-163705.log    
Setting local config values...done.    
Initializing core config...Setting up CA...done.    
Deploying CA to /opt/zimbra/conf/ca ...done.    
Setting replication password...done.    
Setting Postfix password...done.    
Setting amavis password...done.    
Setting nginx password...done.    
Creating server entry for mail.abc.com...already exists.    
Setting Zimbra IP Mode...done.    
Saving CA in ldap...done.    
Saving SSL Certificate in ldap...done.    
Setting service ports on mail.abc.com...done.    
Setting Keyboard Shortcut Preferences...done.    
Setting zimbraFeatureTasksEnabled=FALSE...done.    
Setting zimbraFeatureBriefcasesEnabled=TRUE...done.    
Setting Master DNS IP address(es)...done.    
Setting DNS cache tcp lookup preference...done.    
Setting DNS cache udp lookup preference...done.    
Setting DNS tcp upstream preference...done.    
Setting TimeZone Preference...done.    
Initializing mta config...done.    
Setting services on mail.abc.com...done.    
Adding mail.abc.com to zimbraMailHostPool in default COS...done.    
Creating user spam.xs6kf3zqc@abc.com...already exists.    
Creating user ham.rvso0iaogm@abc.com...already exists.    
Creating user virus-quarantine.td5vabdolb@abc.com...already exists.    
Setting spam training and Anti-virus quarantine accounts...done.    
Configuring SNMP...done.    
Setting up syslog.conf...done.    
Starting servers...done.    
Checking for deprecated zimlets...done.    
Checking for network zimlets in LDAP...done.    
Removing network zimlets...    
Finished removing network zimlets.    
Installing common zimlets...    
    com_zimbra_adminversioncheck...done.    
    com_zimbra_attachcontacts...done.    
    com_zimbra_attachmail...done.    
    com_zimbra_bulkprovision...done.    
    com_zimbra_cert_manager...done.    
    com_zimbra_clientuploader...done.    
    com_zimbra_date...done.    
    com_zimbra_email...done.    
    com_zimbra_mailarchive...done.    
    com_zimbra_phone...done.    
    com_zimbra_proxy_config...done.    
    com_zimbra_srchhighlighter...done.    
    com_zimbra_tooltip...done.    
    com_zimbra_url...done.    
    com_zimbra_viewmail...done.    
    com_zimbra_webex...done.    
    com_zimbra_ymemoticons...done.    
Finished installing common zimlets.    
Getting list of all zimlets...done.    
Updating non-standard zimlets...    
Finished updating non-standard zimlets.    
Restarting mailboxd...done.    
Skipping creation of default domain GAL sync account - existing install detected.

You have the option of notifying Zimbra of your installation.    

This helps us to track the uptake of the Zimbra Collaboration Server.    
The only information that will be transmitted is:    
    The VERSION of zcs installed (8.7.1_GA_1670_RHEL7_64)    
    The ADMIN EMAIL ADDRESS created (admin@abc.com)

Notify Zimbra of your installation? [Yes]    

Notifying Zimbra of installation via

Notification complete    

Setting up zimbra crontab...done.    
Moving /tmp/zmsetup.20161216-163705.log to /opt/zimbra/log    
Configuration complete - press return to exit

5、升级完成,查看所有服务启动正常。    

[root@mail zcs-8.7.1_GA_1670.RHEL7_64.20161025045328]# su zimbra    
[zimbra@mail zcs-8.7.1_GA_1670.RHEL7_64.20161025045328]$ zmcontrol status    
Host mail.abc.com    
    amavis                    Running    
    antispam                Running    
    antivirus                 Running    
    dnscache                Running    
    ldap                        Running    
    logger                    Running    
    mailbox                 Running    
    memcached               Running    
    mta                         Running    
    opendkim                Running    
    proxy                       Running    
    service webapp          Running    
    snmp                         Running    
    stats                         Running    
    zimbra webapp           Running    
    zimbraAdmin webapp      Running    
    zimlet webapp                 Running    
    zmconfigd                       Running

ps:另因启用了proxy,导致原来POP3收信端口110被更改为7110,原110为proxy pop3端口。各位可根据自己实际情况在web管理页面做相应修改。