Reading Time: 5 minutes

Build a vCloud lab is interesting to increase your skill and knowledge, make some test and of course preparing for the VCAP-CIA exam. If you build on a ESXi nested environment you will not have too much problem (except with old hardware that may not support complete ESXi nesting with vSphere 5.1).

With a VMware Workstation environment (of course with enough memory and resources) could be more fun and portable. But could be more difficult if you plan to use vCloud Director virtual appliance.

To start your lab you need at least a vCenter Server (the virtual appliance could be fine), a virtual ESXi, a vCloud Director cell node and a vShield Manager.

The vCloud director is available in two different form:

  • binary installable: officially only on RHEL 5 or 6, but works fine (unsupported) also on CentOS 5 or 6.
  • virtual appliance version: not available in standard download repository, but you can ask to evaluate it, and have access to the virtual appliance version (not supported in production).

For the installable version you have to satisfy the minimum memory requirement, that are at least 1 GB of RAM:

vCloudDirector51-RAM

But in this case you have also to build an external database server (or install the Oracle XE in the same VM).

The virtual appliance is instead already preconfigured and with an internal DB, based on Oracle XE (if you need you can also configure it with and external one). The funny aspect is that the appliance is neither a RedHat or CentOS: it’s Suse Linux!

The deploy it’s also easy, just import your OVA file and set you desired configuration. Usually the internal DB is the simplest choice in a lab environment:

vCloudDirector OVF1 vCloudDirector OVF2

The problem is that you cannot easy deploy this OVA file on VMware Workstation because it requires some configuration parameter in the OVF enviroment, and those could be set only on VMware vSphere. This is the error messages:

vCloudDirector51-ApplianceError

The error is generated by /etc/rc.d/rc3.d/S03vaos service, in this row:

sh /opt/vmware/etc/isv/firstboot

In particular is the ovfenv command (that read the OVF parameters) that generate the previous error message.

On a vSphere enviroment this could be an example of the command output:

localhost:~ # ovfenv

[vami.DNS.vCloud_Director]=
[vami.gateway.vCloud_Director]=
[vami.ip0.vCloud_Director]=
[vami.ip1.vCloud_Director]=
[vami.netmask0.vCloud_Director]=
[vami.netmask1.vCloud_Director]=
[vcd.db.addr]=
[vcd.db.mssql.instance]=
[vcd.db.mssql.name]=MSSQLSERVER
[vcd.db.oracle.sid]=orcl
[vcd.db.password]=
[vcd.db.port]=
[vcd.db.type]=internal
[vcd.db.user]=
[vm.vmname]=vCloud_Director

But when the VM is running on Workstation (also if you copy the VM) does not work at all and generate an error message.

Trying to replace the ovfenv command with the following script is not enough (it just fix the check, but does not permit a correct configuration of the enviroment):

localhost:/opt/vmware/bin # cat ovfenv
#!/bin/sh

cat < < EOF
[vami.DNS.vCloud_Director]=
[vami.gateway.vCloud_Director]=
[vami.ip0.vCloud_Director]=
[vami.ip1.vCloud_Director]=
[vami.netmask0.vCloud_Director]=
[vami.netmask1.vCloud_Director]=
[vcd.db.addr]=
[vcd.db.mssql.instance]=
[vcd.db.mssql.name]=MSSQLSERVER
[vcd.db.oracle.sid]=orcl
[vcd.db.password]=
[vcd.db.port]=
[vcd.db.type]=internal
[vcd.db.user]=
[vm.vmname]=vCloud_Director
EOF

One simple solution is use the ISO way to pass the OVF parameters. If you want to use DHCP and the internal DB this is the ovf-env.xml content:

<?xml version="1.0" encoding="UTF-8"?>
<Environment
xmlns="http://schemas.dmtf.org/ovf/environment/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:oe="http://schemas.dmtf.org/ovf/environment/1"
xmlns:ve="http://www.vmware.com/schema/ovfenv"
oe:id=""
ve:vCenterId="vm-25626">
<PlatformSection>
<Kind>VMware ESXi</Kind>
<Version>5.1.0</Version>
<Vendor>VMware, Inc.</Vendor>
<Locale>en</Locale>
</PlatformSection>
<PropertySection>
<Property oe:key="vami.DNS.vCloud_Director" oe:value=""/>
<Property oe:key="vami.gateway.vCloud_Director" oe:value=""/>
<Property oe:key="vami.ip0.vCloud_Director" oe:value=""/>
<Property oe:key="vami.ip1.vCloud_Director" oe:value=""/>
<Property oe:key="vami.netmask0.vCloud_Director" oe:value=""/>
<Property oe:key="vami.netmask1.vCloud_Director" oe:value=""/>
<Property oe:key="vcd.db.addr" oe:value=""/>
<Property oe:key="vcd.db.mssql.instance" oe:value=""/>
<Property oe:key="vcd.db.mssql.name" oe:value="MSSQLSERVER"/>
<Property oe:key="vcd.db.oracle.sid" oe:value="orcl"/>
<Property oe:key="vcd.db.password" oe:value=""/>
<Property oe:key="vcd.db.port" oe:value=""/>
<Property oe:key="vcd.db.type" oe:value="internal"/>
<Property oe:key="vcd.db.user" oe:value=""/>
<Property oe:key="vm.vmname" oe:value="vCloud_Director"/>
</PropertySection>
<ve:EthernetAdapterSection>
<ve:Adapter ve:mac="00:50:56:8b:4f:db" ve:network="vlan150-intranet" ve:unitNumber="7"/>
<ve:Adapter ve:mac="00:50:56:8b:0e:80" ve:network="vlan150-intranet" ve:unitNumber="8"/>
</ve:EthernetAdapterSection>
</Environment>

You have to put this file in an ISO image, or burn on a CD (but is easier, faster and cheaper the first option). Or simple download this zip file with a pre-build ISO image. Note that you have to add the virtual CD drive in your VM.

At this point just poweron the virtual appliance with the ISO connected and it will correctly auto-configured. Note that it will you ask for the keystore password (funny that in ESXi deployment it is correctly passed): just use “passwd”. If you wait enough probably it goes ahead itself. Note also that sometime the DB will not start… in this case repeat the operation (seems that you reduce too much the memory you can have issues).

Now you can simple complete the configuration of your appliance using a web-browser and pointing to the IP of the management interface, in order to create a new admin user and its password. Note that the wizard, and the entire vCloud interface is localized in your (browser) language!

To change the GUI language without change in the browser see this post. To change the IP Address refer to KB 1028657 (Changing the IP address of the vCloud Director server). To enable SSH root access your have to manually edit the /etc/ssh/sshd_config fine and change the PermitRootLogin line.

Default users and passwords of the appliances are:

  • vCD shell: root/vmware
  • Oracle XE instance: vcloud/VCloud
  • keyring password: passwd

Note that the vCD cell has localhost.localdom name. This could be fine to make some test with a single environment, but of course in case of multiple vCD does not work. Also DNS resolutions could not work… so just use the IP addresses.

I’ve also produce a simple video with all the import steps:

Share

Virtualization, Cloud and Storage Architect. Tech Field delegate. VMUG IT Co-Founder and board member. VMware VMTN Moderator and vExpert 2010-24. Dell TechCenter Rockstar 2014-15. Microsoft MVP 2014-16. Veeam Vanguard 2015-23. Nutanix NTC 2014-20. Several certifications including: VCDX-DCV, VCP-DCV/DT/Cloud, VCAP-DCA/DCD/CIA/CID/DTA/DTD, MCSA, MCSE, MCITP, CCA, NPP.