![同时升级 Zimbra 和操作系统](https://linux22.com/image/690296/%E5%90%8C%E6%97%B6%E5%8D%87%E7%BA%A7%20Zimbra%20%E5%92%8C%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F.png)
最近,我在升级 Zimbra 的同时升级操作系统时遇到了一些问题。更具体地说:我想将 Zimbra 开源版本从 8.0.5 升级到 8.6,同时将 Ubuntu Server 从 12.04 升级到 14.04。我遇到的问题是,我无法让它工作,Zimbra 抛出了很多与 Perl 相关的异常,而且由于 Zimbra 论坛不太方便交流,我不得不重新回滚到我的备份,以便在周末后再次正常运行。那么正确的流程是什么?
答案1
我花了两天时间才让这一切正常运转,并由于升级问题进行了多次恢复,我觉得有必要做出回应。
在我的情况下,这是 Ubuntu 12 (Zimbra 8.6) -> Ubuntu 16 (Zimbra 8.8) 的更新。遗憾的是,Zimbra 网站 ( /opt/zimbra/conf/localconfig.xml
) 上的说明以及 OP 的帖子在 zimbra 的生产版本上执行任务后导致以下 LDAP 错误./install -s
:
ldap_url 和 ldap_master_url 在 ldap 副本上不能相同
因此,对我有用的方法是执行 Labsy 的建议,该建议在 期间执行do-release-upgrade
。为了给其他可能感到困惑的人添加一些深入的信息,您将在 Ubuntu 操作系统升级过程中收到以下消息
Updating repository information
Third party sources disabled
Some third party entries in your sources.list were disabled. You can
re-enable them after the upgrade with the 'software-properties' tool
or your package manager.
此时,打开到服务器的 SSH 会话,并编辑文件并从行首/etc/apt/sources.list.d/zimbra.list
删除,以便 zimbra 包将作为升级过程的一部分进行更新。#
正常进行操作系统升级,并同意所有默认消息。操作系统升级完成后,您可以重新启动服务器。如果 Zimbra 服务在启动过程中启动,则表明一切顺利。
这样,您根本不需要运行./install -s
新的操作系统。
对于因以下信息而来到这里的人,ldap_url 和 ldap_master_url 在 ldap 副本上不能相同,您收到错误的原因是因为./install -s
删除了 中存储的 LDAP 配置/opt/zimbra/conf/localconfig.xml
。如果您没有此文件的备份,则必须从备份/快照中恢复并从头开始升级过程。
答案2
我在 Zimbra 网站上找到了一份指南,还不错,但缺少了一些部分(https://wiki.zimbra.com/wiki/Ubuntu_Upgrades)。我最终弄明白了,但我觉得有必要写下来,以供我和其他人将来参考。就我而言,我使用的是安装有 Zimbra 开源版的单服务器,其中一些可能不适用于其他实例。
一般内容
1.使用虚拟机和 LVM 卷
最佳做法通常是在虚拟机上安装 Zimbra,并使用 LVM 或其他支持快照的技术。这样,您就可以创建快照,如果出现任何问题,只需回滚到快照即可。
快照不仅可用于在更新/升级出现问题时拥有额外且易于使用的回退点,还可以提供更简单的备份:
- 停止 Zimbra 服务
- 创建快照卷
- 在主机上挂载快照
- 备份数据
- 卸载快照
- 删除快照
注意:快照应该作为备份的补充,而不是替代备份。
2. 备份
对整个 /opt/zimbra 文件夹进行完整备份,并始终保留一份适用于您使用的版本和操作系统的 Zimbra 安装程序副本。如果您的服务器崩溃,您可以使用该文件夹和安装程序恢复整个 Zimbra 安装。
3. 保持安装最新
您不必一直使用最新版本(尽管这是一个好主意),但至少您应该确保您的操作系统和 Zimbra 安装在其支持期限内。
4. 使用屏幕
如果您通过 SSH 管理服务器,请确保使用 screen 进行所有升级。万一您的连接中断,它不会毁了您的一天(如果终端会话关闭,它会终止所有正在运行的命令)。使用 screen,您只需使用 即可恢复中断的会话screen -r
。
升级
接下来是棘手的部分。就我而言,我搞砸了,开始将 Ubuntu 12.04 升级到 Ubuntu 14.04。然后我尝试在当前的 8.0.5 上安装 Zimbra 8.6,但由于我过于自大而忽略了版本检查,安装失败了。
诀窍是你必须安装精确的升级后的操作系统上的 Zimbra 版本与旧操作系统上的版本相同。就我而言,甚至没有适用于 Ubuntu 14.04 的安装程序,因此基本上我只能回滚到我的快照并重新开始。
在此示例中,我使用了我的配置。再说一遍:我想从 Ubuntu 12.04 升级到 14.04,从 Zimbra 8.0.5 升级到 8.6。
1. 确保新旧操作系统使用相同的 Zimbra 版本
就我而言,Ubuntu 14.04 上没有 Zimbra 8.0.5 的安装程序,但 Ubuntu 12.04 有 8.6 的安装程序。无论你先升级 Zimbra 还是操作系统,都无关紧要,但做在新旧操作系统上安装相同的 Zimbra 版本并不重要。在新操作系统上安装旧 Zimbra 版本后,您可以升级,但不能同时升级您的操作系统和 Zimbra。
2. 在 Ubuntu 12.04 上升级到 Zimbra 8.6
只需下载 8.6 档案,解压并安装。您不必先停止 zimbra,安装程序会自动停止。
screen
wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.UBUNTU12_64.20141215195814.tgz
tar xzf zcs-8.6.0_GA_1153.UBUNTU12_64.20141215195814.tgz
cd zcs-8.6.0_GA_1153.UBUNTU12_64.20141215195814
sudo ./install.sh
按照说明操作。如果要求您进行完整性检查,您不必这样做,但这样做是个好主意。这可能需要一段时间,但可以确保您的数据库完好无损。安装后,验证一切是否正常。
3. 将 Ubuntu 从 12.04 升级到 14.04
在开始升级之前停止 zimbra,并确保所有服务都已停止。
su - zimbra
zmcontrol stop
zmcontrol status
exit
更新并升级,然后开始发布升级:
sudo apt-get update
sudo apt-get ugprade
sudo do-release-upgrade
在升级过程中,Ubuntu 会多次询问您是否要保留当前配置。总是总是总是这样做,也就是选择默认答案 (N)
Configuration file `/etc/security/limits.conf’
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer’s version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
*** limits.conf (Y/I/N/O/D/Z) [default=N] ?
删除旧包时也是如此,暂时保留它们。 升级完成后,重新启动。
4. Ubuntu 升级后
Zimbra 现在无法工作,不要惊慌。这是因为您使用的是适用于 Ubuntu 12.04 的 Zimbra 8.6,它不适用于 Ubuntu 14.04。如果您现在还没有下载,请下载相同的您在旧系统上使用的 Zimbra 版本(在本例中为 8.6),但这次是新版本:
wget https://files.zimbra.com/downloads/8.6.0_GA/zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz
tar xzf zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116.tgz
5. 为 Ubuntu 14.04 安装 Zimbra 8.6
您需要安装 Zimbra 安装的所有依赖项,在我的情况下是 libperl5.18,但如果您尚未安装它,它会要求解压缩等。不用担心,安装程序会通知您缺少什么,只需按照后续步骤操作即可,如果安装程序由于缺少依赖项而取消,只需安装它们并继续。这次您必须使用 -s 选项运行安装程序并跳过完整性检查。
-s 选项代表软件;这意味着安装程序不会升级您的数据,而只是安装新软件。您需要新软件来升级现有数据(邮件存储、设置等),如果您忽略它,安装程序将取消并出现错误。在继续之前,请再次确保您使用了适合您版本的正确安装程序。您会在文件夹名称中看到版本:zcs-8.6.0_GA_1153。UBUNTU14_64.20141215151116.
cd zcs-8.6.0_GA_1153.UBUNTU14_64.20141215151116
sudo ./install.sh -s
重要的:跳过完整性检查,您可以在数据升级后手动执行此操作。
Do you want to verify message store database integrity? [N]
如果系统询问您是否要升级,请继续并回答 Y。安装完成后,再次运行相同的安装程序,这次不带 -s 选项:
sudo install.sh
注意:您可以立即运行完整性检查,也可以跳过它并稍后再运行。
按照之前的说明操作。现在您应该可以在 Ubuntu 14.04 上运行 Zimbra 8.6。
简而言之
这不管用
Ubuntu 12.04 上的 Zimbra 8.0.5 --> 将 Ubuntu 升级到 14.04 并在 Ubuntu 14.04 上安装 Zimbra 8.6
这有效
Ubuntu 12.04 上的 Zimbra 8.0.5 --> Ubuntu 12.04 上的 Zimbra 8.6_for_12_04 --> 升级到 Ubuntu 14.04 --> 在 Ubuntu 14.04 上安装 Zimbra 8.6_for_14_04
答案3
步骤 3. 将 Ubuntu 从 12.04 升级到 14.04
当升级过程提示您删除不兼容的存储库时,请务必暂停!请等待,然后再继续,打开另一个与服务器的 SSH 会话并编辑文件:
/etc/apt/sources.list.d/zimbra.list
删除那里 2 或 3 行由 do-release-upgrade 添加的哈希值 #。
保存文件并返回原始 SSH 会话,现在您可以继续升级过程。这样做,升级不会删除,而是升级所有 Zimbra 软件包。