0x01 前言
这些天我发现VCSA有新的补丁,但在升级过程中出现补丁包下载失败的情况。手动配置代理服务器后再尝试也无法下载。
最后只能通过下载离线升级包进行升级。
0x02 BUG
登陆进入 VMware vSphere Appliance Management:
在“更新”窗口中单击“检查更新”–>“检查存储库”,稍等片刻后即可查询是否有新的补丁:
在“可用更新”一栏中找到“知识库”地址,在后面下载补丁的时候需要用到。
在这里先点击“安装更新”–>“安装所有更新”,如果转储成功,那么VCSA会自动安装并重启;如果失败,会有以下提示:
请注意右下角的提示,这个提示只会显示3秒左右,很容便宜被忽略。另外还有一种情况:
如上图所示,升级卡在转储升级软件包的过程中。
如果点击“更新”界面中的“设置”按钮,可以找到升级包的存储库URL:
我尝试将改地址通过浏览器访问,但返还404,不知道是因为VMware服务器有问题还是我的网络有问题。另外还可以自建web服务器,这样就可以配置“使用指定存储库”。
0x03 准备
既然自动升级不可行,那就手动升级吧。
首先将知识库的地址复制到浏览器的地址栏并打开:
知识库 https://kb.vmware.com/kb/000050864
请复制你升级界面中的知识库地址,以上地址仅用于演示:
打开后的页面如上图所示,其中包含几个重要的信息:
- 发布时间
- 补丁信息
- 安装教程
补丁的下载请单击箭头所指的链接,这里需要注册一个VMware账号,补丁下载是免费的:
在打开的窗口中选择“VC”,并选择版本,我VC的版本是6.5,选择完成后会弹出补丁列表。
然后需要搜索补丁的build号,确认补丁版本后点击“Download”即可下载。
VCSA补丁都很大,下载需要的时间比较长,需要耐心等待。
0x04 安装
首先需要将下载下来的镜像挂载到VCSA虚拟机中。先给VCSA虚拟机添加一个直通的光盘驱动器:
然后打开VCSA的Vmware remote console:
然后挂载下载下来的镜像:
完成后通过ssh登入到VCSA:
这里不需要用到shell,使用VMware CLI即可。然后输入以下命令指向ISO:
software-packages stage --iso
回车后弹出一堆用户协议,按回车到最后会弹出是否接受该协议的交互,输入yes并回车即可:
在开始安装补丁之前一定要使用以下命令检查该镜像的信息,还需要确认build号:
software-packages list --staged #返还的内容如下 Command> software-packages list --staged [2017-11-26T13:57:05.330] : category: Bugfix kb: https://kb.vmware.com/kb/000050864 vendor: VMware, Inc. name: VC-6.5.0U1c-Appliance-FP tags: [u''] summary: Patch for VMware vCenter Server Appliance 6.5.0 thirdPartyInstallation: False releasedate: November 14, 2017 TPP_ISO: False version: 6.5.0.12000 buildnumber: 7119157 rebootrequired: True productname: VMware vCenter Server Appliance eulaAcceptTime: 2017-11-26 13:55:01 HKT severity: Critical
在升级之前请为VCSA创建一个快照!
确认无误后通过以下命令即可升级:
software-packages install --staged #返还的内容 Command> software-packages install --staged [2017-11-26T14:00:03.330] : Validating software update payload [2017-11-26T14:00:03.330] : The version check is passed. [2017-11-26T14:00:03.330] : Validation successful [2017-11-26 14:00:03,262] : Copying software packages [2017-11-26T14:00:03.330] : ISO mounted successfully 31/31 [2017-11-26T14:00:20.330] : ISO unmounted successfully [2017-11-26 14:00:21,722] : Running test transaction .... [2017-11-26 14:00:26,876] : Running pre-install script..... [2017-11-26T14:02:48.330] : All VMware services are stopped. [2017-11-26 14:02:48,528] : Upgrading software packages .... [2017-11-26 14:03:51,965] : Running post-install script..... [2017-11-26T14:03:54.330] : Packages upgraded successfully, Reboot is required to complete the installation.
请注意:在Running test transaction后的Running pre-install script这一步有可能会出现卡顿的情况,请不要关闭shell窗口,也不要对VC做任何操作!请耐心等待。
稍等片刻后,补丁的安装即可完成。完成后需要手动重启VCSA。
因为安装补丁的时候已经关闭VC所有的服务,所以重启工作只能通过shell或者esxi host重启虚拟机。
因为我的shell窗口还没关,所以我选择使用shell重启虚拟机。在shell窗口输入“shell”并回车以进入bash:
Command> shell Shell access is granted to root root@vcenter [ ~ ]#
然后输入“reboot”并回车:
root@vcenter [ ~ ]# reboot root@vcenter [ ~ ]# Connection closing...Socket close.
然后是漫长的等待,VCSA重启后再通过SSH登入vcenter并输入以下命令即可检查版本:
Command> version.get Version: Product: VMware vCenter Server Appliance Installtime: 2017-04-06T13:19:42 UTC Summary: Patch for VMware vCenter Server Appliance 6.5.0 Releasedate: November 14, 2017 Version: 6.5.0.12000 Build: 7119157 Type: vCenter Server with an embedded Platform Services Controller
0x05 结语
这种方式也适合升级不联网的VCSA,当然也可以自行搭建一个存储库。