0x01 前言

这些天我发现VCSA有新的补丁,但在升级过程中出现补丁包下载失败的情况。手动配置代理服务器后再尝试也无法下载。

最后只能通过下载离线升级包进行升级。

0x02 BUG

登陆进入 VMware vSphere Appliance Management:

在“更新”窗口中单击“检查更新”–>“检查存储库”,稍等片刻后即可查询是否有新的补丁:

在“可用更新”一栏中找到“知识库”地址,在后面下载补丁的时候需要用到。

在这里先点击“安装更新”–>“安装所有更新”,如果转储成功,那么VCSA会自动安装并重启;如果失败,会有以下提示:

请注意右下角的提示,这个提示只会显示3秒左右,很容便宜被忽略。另外还有一种情况:

如上图所示,升级卡在转储升级软件包的过程中。

如果点击“更新”界面中的“设置”按钮,可以找到升级包的存储库URL:

我尝试将改地址通过浏览器访问,但返还404,不知道是因为VMware服务器有问题还是我的网络有问题。另外还可以自建web服务器,这样就可以配置“使用指定存储库”。

0x03 准备

既然自动升级不可行,那就手动升级吧。

首先将知识库的地址复制到浏览器的地址栏并打开:

请复制你升级界面中的知识库地址,以上地址仅用于演示:

打开后的页面如上图所示,其中包含几个重要的信息:

  • 发布时间
  • 补丁信息
  • 安装教程

补丁的下载请单击箭头所指的链接,这里需要注册一个VMware账号,补丁下载是免费的:

在打开的窗口中选择“VC”,并选择版本,我VC的版本是6.5,选择完成后会弹出补丁列表。

然后需要搜索补丁的build号,确认补丁版本后点击“Download”即可下载。

VCSA补丁都很大,下载需要的时间比较长,需要耐心等待。

0x04 安装

首先需要将下载下来的镜像挂载到VCSA虚拟机中。先给VCSA虚拟机添加一个直通的光盘驱动器:

然后打开VCSA的Vmware remote console:

然后挂载下载下来的镜像:

完成后通过ssh登入到VCSA:

这里不需要用到shell,使用VMware CLI即可。然后输入以下命令指向ISO:

回车后弹出一堆用户协议,按回车到最后会弹出是否接受该协议的交互,输入yes并回车即可:

在开始安装补丁之前一定要使用以下命令检查该镜像的信息,还需要确认build号:

在升级之前请为VCSA创建一个快照!

确认无误后通过以下命令即可升级:

请注意:在Running  test transaction后的Running pre-install script这一步有可能会出现卡顿的情况,请不要关闭shell窗口,也不要对VC做任何操作!请耐心等待。

稍等片刻后,补丁的安装即可完成。完成后需要手动重启VCSA。

因为安装补丁的时候已经关闭VC所有的服务,所以重启工作只能通过shell或者esxi host重启虚拟机。

因为我的shell窗口还没关,所以我选择使用shell重启虚拟机。在shell窗口输入“shell”并回车以进入bash:

然后输入“reboot”并回车:

然后是漫长的等待,VCSA重启后再通过SSH登入vcenter并输入以下命令即可检查版本:

0x05 结语

这种方式也适合升级不联网的VCSA,当然也可以自行搭建一个存储库。