VMware Cloud Community
danzig69
Contributor
Contributor

updating esxi 5 using a http depot. Problem and the solution

Here is a short How to solved the problem I had with 2 esxi host who needed a new build. They are not in prod, almost new. When using any command that request to check a software depot for update, like this command: esxcli software sources vib list --depot=http://192.168.0.10/depotvmware/update | more
I received after a very long wait time, maybe 5 minutes this error message :

[MetadataDownloadError]
Could not download from depot at http://192.168.0.10/depotvmware/update/index.xml, skipping (('http://192.168.0.10/depotvmware/update/index.xml', '', '[Errno 4] IOError: <urlopen error [Errno 110] Connection timed out>'))        url = http://192.168.0.10/depotvmware/update/index.xml
Please refer to the log file for more details.

Problem : firewall on the host block the outgoing http port 80 request

Solution : enable a Firewall Remote Access that permit the outgoing ports 80. Like vCenter Update Manager, httpClient or Fault Tolerance.

Be sure your host is in maintenance mode.

There is multiple way to do the next step:

Methode A
Using vSphere Client, connect to your host, Tab Configuration, Security Profile, Firewall Properties..., Options, Look for Fault Tolerance, vCenter Update Manager and httpclient are probably uncheck. Check the box of one of these. I

recommand vCenter Update Manager because you will probably do like me, install it in the futur...

The next step can be done in MANY way.
using SSH. SSH must be start in the Sphere Client, connect to your host, Tab Configuration, Security Profile, Services Properties... SSH, Options, Start, Ok, Ok.
use a software like putty to connect to your host, login and use those command
esxcli software sources vib list --depot=http://youWebServerIp/depotvmware | more
esxcli software vib update --depot=http://youWebServerIp/depotvmware
wait
a lot of text will appear then you can type : exit     to quit the SSH session
you can now reboot your host with vSphere Client. Update are apply.


Methode B
You need to connect localy to your esxi hypervisor. Or with your ilo software. When connected, go to Troubleshooting Options, SSH must be enable if it is not already do what is needed in this screen. Leave that windows open. You will need it to desactivate SSH at the end.

Use an SSH software to connect/login to your esxi hypervisor like putty.
Type this command in the SSH session : esxcli network firewall ruleset list
updateManager and httpClient and faultTolerance are probably false.
change one of these service to true with this command : esxcli network firewall ruleset set -e=true -r=updateManager
or
esxcli network firewall ruleset set -e=true -r=httpClient
or
esxcli network firewall ruleset set -e=true -r=faultTolerance

now you can use these command :
esxcli software sources vib list --depot=http://yourDepotIp/depotvmware | more
esxcli software vib update --depot=http://yourDepotIp/depotvmware

you can now close the SSH service with your Ilo interface or direct connection on your host, Go to Troubleshooting Options, Disable SSH and reboot your host

update should be apply

I wish this post will save some hour to someone.

Reply
0 Kudos
2 Replies
Mantis76
Contributor
Contributor

Hi,

i see that you write this url http://yourDepotIp/depotvmware | more in your example....

but which ip do you mean? the updatemanager lan ip or the web ip from vmware? in my case i have installed update manager in a separate windows machine and connected to a vcenter.

i would very much to download updates from the internet.

I see <urlopen error [Errno 12] Connection timed out>'))  and my url + port 9084

Reply
0 Kudos
danzig69
Contributor
Contributor

youDepotIp = the ip address of your web server who host the file/patch

for me it's the ip address of my web server 192.168.0.10

here is a real example that i used:

I have unzip the patch ESXi500-201407001.zip in a folder named : C:\Inetpub\wwwroot\depotvmware\ESXi500-201407001 on my web server.

So the command is :

esxcli software vib update --depot=http://192.168.0.10/depotvmware/ESXi500-201407001

With this method, you don't need an update manager server. It's a way to manually update your host.

Reply
0 Kudos