我的软路由用了好几年了,ESXI一直没有升级,6.0逐步被6.7替代了,为了以后兼容性更好,所以我也决定给ESXI升级。

升级

首先进入ESXI后台,导航器-主机-管理-服务 中:

启动TSM-SSH服务,然后使用Putty这类工具链接ESXI主机:

把升级包上传到ESXI主机的存储中:

把存储的位置记录和升级包的名字记录下来,后面要用到,我的升级包是: ESXi-6.7.0-20190504001.zip ,所以在ESXI主机中的位置是 /vmfs/volumes/5b749a47-47f48e54-8491-00e04d71006e/ESXi-6.7.0-20190504001.zip

现在我们要回到SSH终端界面,输入以下命令:

esxcli software sources profile list -d /vmfs/volumes/5b749a47-47f48e54-8491-00e04d71006e/ESXi-6.7.0-20190504001.zip

回返回一下信息:

这个时候我们要把返回信息中Name的部分复制下载,例如我的这个就是 ESXi-6.7.0-20190504001-standard-customized ,然后再输入一下命令:

esxcli software profile update -d /vmfs/volumes/5b749a47-47f48e54-8491-00e04d71006e/ESXi-6.7.0-20190504001.zip -p ESXi-6.7.0-20190504001-standard-customized

之后要稍微等个30秒终端控制台中才能有有反馈信息出现,只要等终端控制台中停止了就可以输入 reboot 来重启ESXI主机,这里我就不操作演示了,因为我已经升级到6.7了。

503服务不可用错误

成功升级重启ESXI主机后,发现无法从 VMware Host Client 连接到 ESXi 主机,页面出现了以下的错误信息:

503 服务不可用 (无法连接到端点: [N7Vmacore4Http16LocalServiceSpecE:0xffa014e8] _serverNamespace = /ui _isRedirect = false _port = 8308) (503 Service Unavailable (Failed to connect to endpoint: [N7Vmacore4Http16LocalServiceSpecE:0xffa014e8] _serverNamespace = /ui _isRedirect = false _port = 8308))

这是因为升级后对 /etc/vmware/rhttpproxy/endpoints.conf 的更改将保留,导致 /ui 端点覆盖 VMware Host Client。如果 6.0 或更高版本的 ESXi 主机上的 endpoint.conf 文件中缺少 /ticket ,您的浏览器内虚拟机控制台将显示“无法连接 (Failed to connect)”错误消息,但 VMware Remote Console 将继续工作。

解决办法

继续用Putty一类工具登录到ESXI主机,首先是备份 endpoints.conf 文件:

cp /etc/vmware/rhttpproxy/endpoints.conf /tmp

然后在编辑器中打开 /etc/vmware/rhttpproxy/endpoints.conf 文件,并添加以下行:

/ui local 8308 redirect allow

最后重新启动反向 Web 代理。

/etc/init.d/rhttpproxy restart

再访问登录页面,就一切正常了。