Building vCloud Director Cells using CentOS6

In my lab infrastructure (build information soon to be published for information), I have been playing with vCloud Director 1.5. As part of my work day, I am developing a cloud platform as part of a team at Eduserv (for more information see, and part of that is to design availability zones so customer information when populated will be resilient across geographical locations.

Now, not being part of the RedHat brigade (and a novice getting up to speed with CentOS), I have been playing with getting vCloud Director cells to work ok on CentOS (an ‘unsupported’ activity, according to the documentation – RHEL being a pre-req for vCD). In order to get this to work, I followed the following process.

NOTE: There is probably a much better way of doing this, but this is the first way I found to get it to work. If you have found another or have a better suggestion – feel free to comment!


1. A vCenter has been installed and is available for vCloud Director to abstract resources, with 1 or more ESXi hosts.

2. A SQL database is installed and available in the management cluster for vCloud Director to populate.

3. The management cluster has been installed with Enterprise or Enterprise Plus licensing, to enable DRS.

4. DNS entries have been created for all the instances in the installation.

5. Security and correct port access has been configured on the management network to allow appropriate access.

6. The management infrastructure has been installed with a separate vCenter, to manage vCloud and it’s resources.


1. Do CentOS minimum build within a VM. Allocate 1 NIC but assign the NIC 2 IP addresses (usually eth0) during the build. (2 IPs are needed, 1 for the HTTP service and 1 for the console proxy service). Size the VMs as noted in the Install Guide (see: PDF – I sized mine as follows:

  • For a single cell, 1vCPU, 1024MB RAM, 64GB HD.
  • For a multi-cell, 1vCPU, 1024MB RAM, 10GB HD.
  • (See notes in my other post on considerations for deploying multiple cells here).

2. Download the vCloud Director binaries from VMware (evaluation versions can be had from

3. Power on the (first) VM.

4. Copy the downloaded binaries to /tmp on the built cell. Best way I’ve found is to use WinSCP – other methods also work….

5. SSH to cell, using the root password you used for the VM build.

6. Install vShield Manager. When you downloaded vCloud Director earlier, an OVF of the VSM appliance was included. Deploy this OVF file to your management infrastructure, and configure per the Install Guide referred to earlier.

7. If you want to use vCloud Messaging, install an AMQP Broker (RabbitMQ recommended, see:

8. Change permissions of vCD binaries. The installation file needs execution permission:

chmod u+x /tmp/installation-file

9. Check the second IP address for eth0 exists, by running the ‘ifconfig’ command.

10. Run binary to begin the installation.

cd /tmp

11. Confirm installation on unsupported OS.

12. If asked for dependencies as some are missing, copy list of dependencies into vi then edit the line so all the dependancies are listed on a single line. Copy single line then exit vi (save the file if you wish).

13. Install the dependencies.

yum install *right click
y (Confirm download and installation).

14. Once installed, re-run the vCloud installer as step 10.

NOTE: There are several cell installation steps that are not listed here such as database connection details etc. Refer to the installation guide for more information on these steps.

15. When getting to certificate store part, open another SSH session to cell.

16. Add path to /opt/vmware/vcloud-director/ to /etc/profile on the CentOS OS.

17. Close SSH session (this is important, so the session picks-up the new path credentials).

18. Open new SSH session, authenticate as root user.

19. Create Self-Signed SSL Certificates for each IP address on the host. (See assumptions about DNS being configured – above).

– Create an untrusted certificate for the HTTP service in a file called certificates.ks:

keytool -keystore certificates.ks -storetype JCEKS -storepass passwd -genkey -keyalg RSA -
alias http

– Create an untrusted certificate for the console proxy service, adding it to the keystore file created above:

keytool -keystore certificates.ks -storetype JCEKS -storepass passwd -genkey -keyalg RSA -
alias consoleproxy

– Verify the contents of the keystore file:

keytool -storetype JCEKS -storepass passwd -keystore certificates.ks -list

20. Copy the certificates.ks keystore file to /opt/vmware/vcloud-director.

21. Close SSH session, return to original session with the original vCloud Director installation.

22. List keystore location as:


23. If installer has quit, re-run. If message prompts installer has already finished, run the configure command:


24. At certificates store part, enter the path as step 22. “This may take a while!”

25. On completion, start the vCD services when prompted.

That’s it – your vCloud Cell should now be responding to HTTP requests to it’s IP address. There are some additional steps that will be needed if you are running a multi-cell set-up. For more pointers on this, please see the additional post here:

Jeremy loves all things technology! Has been in IT for years, loves Macs (but doesn't preach to others about their virtues), loves virtualization (and does shout about it's virtues), and sometimes skis, bikes and directs amateur plays!


  1. Amitabh Dey says

    Excellent Article Jeremy! Appreciate your contribution towards the virtualization and cloud community! – Amitabh (HP, Singapore)

  2. Andre says

    Excellent Article. Will use it. Question is, is there any known differences, limitations, or bugs between vCloud Director running on CentOS vs. Redhat

  3. Kacimoo says

    On CentOS 6.2, I was getting the following error: “ERROR: Unable to source /lib/lsb/init-functions, cannot proceed” when tring to start the vcloud services.
    I installed “redhat-lsb” pack by runing “yum install redhat-lsb”, start the service and voila !


Leave a Reply

Your email address will not be published. Required fields are marked *