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 16.04.1 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 the latest Ubuntu LTS distribution (16.04.1 at the time of writing this). 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:

  1. Extract the UMDS installer into /tmp
  2. Install all OS package dependencies
  3. Create UMDS installer answer file /tmp/answer
  4. Create the /etc/odbc.ini and /etc/odbcinst.ini configuration file
  5. Updating pg_hba.conf to allow UMDS user to access the DB
  6. Start Postgres DB
  7. Create UMDSDB user and setting the assigned password
  8. 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:

  1. UMDS package installer
  2. Name of the UMDS Database
  3. Name of the UMDS DSN Entry
  4. Username for running the UMDS service
  5. 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

automate-vum-umds-vsphere-6-5-install-0

/usr/local/vmware-umds/bin/vmware-umds -G

automate-vum-umds-vsphere-6-5-install-1
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.

Thanks for the comment!