Tuesday, January 16, 2007

Vmware ESX 3 patch updates through FTP ...

Hi,

Allthough we only have four ESX-servers for the moment I tried to make a ftp-repository for all ESX-patches. I put the FTP-server on my virtual center server. But it didn't work proporly, I allways got this error :

# esxupdate -r ftp://172.28.247.223/dslib/ESX-1006511 update
INFO: Configuring...
INFO: Preparing to install VMware ESX Server ESX-1006511...
ERROR: Error (1) executing [yum info] retrygrab() failed for: ftp://172.28.247.223/dslib/ESX-1006511/headers/header.info
Executing failover method failover: out of servers to try Error getting file ftp://172.28.247.223/dslib/ESX-1006511/headers/header.info[Errno 6]
ERROR: Url Return no Content-Length - something is wrong
Gathering header information file(s) from server(s) Server:
Esxupdate-compatible repository for VMware ESX Server ESX-1006511

After some google-ing I found this procedure:

  • Login to the service console as root
  • Change directory to /usr/share/yum
  • Make a backup copy of urlgrabber.py (IMPORTANT) cp urlgrabber.py urlgrabber.py.BAK
  • Edit urlgrabber.py and find the following lines:

    if have_urllib2 or scheme != 'file':
    # urllib does not provide content-length for local files
    if not hdr is None and not hdr.has_key('Content-Length'):
    raise URLGrabError(6, _('ERROR: Url Return no Content-Length - something is wrong'))
  • Comment them out (Add a '#' at the beginning of the line):

    # if have_urllib2 or scheme != 'file': #
    # urllib does not provide content-length for local files
    # if not hdr is None and not hdr.has_key('Content-Length'):
    # raise URLGrabError(6, _('ERROR: Url Return no Content-Length - something is wrong')) Try the esxupdate command again..

  • Then try the esxupdate again

No comments: