One of the most highly requested feature from customers with regards to the adoption of the vCenter Server Appliance (VCSA) is to have vSphere Update Manager (VUM) available as a Virtual Appliance. With the vSphere 6.5 release, this is now a reality as VUM is now embedded within the VCSA. The VUM service is also automatically enabled and associated with the vCenter Server instance which means from a customer standpoint, it is zero touch to get VUM up and running!
In addition to VUM being part of the VCSA 6.5, there is also the VUM Update Manager Download Service (UMDS) that can be installed on a separate Linux system. You can find the UMDS installer within the VCSA 6.5 ISO under the umds directory. To install UMDS, there are several pre-requisites that you must meet, some of which are documented here. The other requirements which are not documented are the additional OS package dependencies required to run the UMDS installer. While going through this by hand the first time, I found the following packages were required to install on an Ubuntu 14.04 distribution:
- perl
- tar
- sed
- psmisc
- unixodbc
- postgresql
- postgresql-contrib
- odbc-postgresql
For those of you who know me, if I have to perform something manually once, I might as well automate it for the future 🙂 I decided to create this quick shell script called install_umds65.sh which will allow you to easily deploy UMDS on an Ubuntu LTS 14.04 distribution. This can be useful for automated deployments or quickly standing up a lab environment.
When you install UMDS manually, you are prompted for several responses and the script currently just uses those defaults. If you wish to change them, you simply just need to edit the "answer" file that the script generates to provide to the UMDS installer itself.
Here is what the script is doing at a high level:
- Extract the UMDS installer into /tmp
- Install all OS package dependencies
- Create UMDS installer answer file /tmp/answer
- Create the /etc/odbc.ini and /etc/odbcinst.ini configuration file
- Updating pg_hba.conf to allow UMDS user to access the DB
- Start Postgres DB
- Create UMDSDB user and setting the assigned password
- Install UMDS
Step 1 - Upload both the UMDS install script (install_umds65.sh) as well as the UMDS install package found in the VCSA 6.5 ISO to an already deployed Ubuntu system
Step 2 - The script needs to run as root and it requires the following 5 command-line options:
- UMDS package installer
- Name of the UMDS Database
- Name of the UMDS DSN Entry
- Username for running the UMDS service
- Password for the UMDS username
Here is an example of running the script:
sudo ./install_umds65.sh VMware-UMDS-6.5.0-4540462.tar.gz UMDSDB UMDS_DSN umdsuser VMware1!
Step 3 - Once the UMDS installer script completes, you can verify by running the following two commands which provides you with the version of UMDS as well as the current configurations:
/usr/local/vmware-umds/bin/vmware-umds -v
/usr/local/vmware-umds/bin/vmware-umds -G
At this point, you have now successfully installed UMDS. You can use the vmware-umds CLI to add/remove patch repository as well as initiate the download by using the -D option. Once you have download all of your content, you will need to setup an HTTP server to make it available to VUM instance in the vCenter Server Appliance (VCSA). You can configure any popular HTTP Server such as Nginx or Apache. For my lab environment, I actually just use the tiny HTTP server that Python can provide.
To make the content under /var/lib/vmware-umds available, just change into that directory and run the following command:
python -m SimpleHTTPServer
By default, this will serve use port 8080, but you can change it by simple appending a port number like: python -m SimpleHTTPServer 8081. Now if you open a browser to the IP Address and port of the UMDS Server, you should see directory listing of the files. You can take this URL and add that into your VUM instance.
vikrant says
Great article, I have really enjoyed your article. This is really great that VUM is now embedded within the VCSA. The VUM service is also automatically enabled and associated with the vCenter Server instance which means from a customer standpoint, it is zero touch to get VUM up and running. You show how to automate the deployment of VUM's Update Manager Download Service (UMDS) in vSphere 6.5 for an Ubuntu 14.04 distribution. It is really helpful. I have done by the help of your article. Thanks for sharing. The way you explained each and everything is really great. Thanks once again.
Jody Whitlock says
So academic discussion; what is the benefit of setting up a separate UMDS to do what the VUM itself can do?
Jacob Wutke says
Part of the advantage I see is having a central repository on site for multiple VUM servers, Keeps us from having to have multiple servers with external network access
PeterZ says
Is it possible to use something like a pulp server as repository or it has to be UMDS?
William Lam says
You'll need UMDS to initial download the repository and its layout. After that, you can host the content as long as its reachable via HTTP (please see the last couple of paragraphs)
Daniel Johnson says
For those trying to use CentOS v7.3 (and probably the same on RHEL v7.3), take heed to ensure that your pg_hba.conf has a line for "::1/128" as well for "127.0.0.1/32". Without the IPv6 line my system kept insisting on trying Ident access instead of password/md5 access.
Jefferson Cowart says
Can we see this available as a VA (possibly just another deployment mode of VCSA) in future releases so we don't have another thing that needs a different update management method?
AJ Head says
What script changes are needed to automate installation of UMDS for a Red Hat Linux system?
Cesar Marquez says
Think you would need only modify the installation process..
echo "Installing UMDS package dependencies ..."
apt-get update
apt-get -y install vim perl tar sed psmisc unixodbc postgresql postgresql-contrib odbc-postgresql
change it for yum
Cesar Marquez says
Hello,
I have installed the UMDS on a Red Hat 7.4 with apache(httpd), I am getting some weird errors when executing the downloads, anyone has faced something like this?
INFO - Executing download job {139889836313968}, url=https://hostupdate.vmware.com/software/VUM/PRODUCTION/main/vmw-depot-index.xml
ERROR - curl_easy_perform() failed: cURL Error: Peer certificate cannot be authenticated with given CA certificates, SSL certificate problem: unable to get local issuer certificate
ERROR - Executing download job {139889836313968} throws error: curl_easy_perform() failed: cURL Error: Peer certificate cannot be authenticated with given CA certificates, SSL certificate probl...