Last week I finished off the months work of articles for TechTarget. The View 4.5 Guide was released. So I found I had time to take a look at vCloud Director.
I found the installation process tricky, mainly because I gave myself a bit of a mountain to climb. I was trying to setup Oracle on Linux. Despite my extensive use of the Service Console for ESX, I wouldn’t say I was a Linux Guru by any stretch of the imagination – and I know absolutely zip about Oracle.
Using Oracle Enterprise Linux
First thing is first. I didn’t use RHELv5. I was a naughty boy and used a free distribution of RHEL that doesn’t expire after 30/60 days of use. I used instead Oracle’s own Enterprise Linux, which is Oracle’s own distribution of RHEL. I don’t keep up with Oracle but I assume like VMware with SLES, Oracle have an OEM agreement with RHEL. I DON’T consider using Oracle Enterprise Linux as best practice. But I found it does work, although the main RPM installer of VMware vCloud Director (vCD) will allow the installer to continue – although it does tell you the distribution is not supported.
I thought it would be interesting to setup the Oracle DB on Linux platform. I tried using Oracle Express. That’s not supported either. Sadly my Oracle skills let me down. Next, I tried the full version of Oracle 11g on Linux. Again, my Oracle skill let me down. I couldn’t do the basics like get sqlplus to work. Stuff like that. So eventually I threw in the towel and decided to use Oracle 11g 64-bit on Windows 2008 64-bit R2…
More progress here – I could at least get the sqlplus command-prompt open. I was following the vCD install guide and this video/KB article from VMware. I managed OK, until I came to running the vCD configuration wizard (it's a command-line wizard held at /opt/vmware/cloud-director/bin/configure). Midway thru this wizard you're asked to provide the database details – and that’s where I became unstuck…
Here’s what I was inputting:
Enter the host (or IP address) for the database: orcl10g.corp.com
Enter the database port default=1521:
Using default value “1521″ for port.
Enter the database service name default=orcl:
Using default value “orcl” for database service name.
Enter the database username: vclouduser
Enter the database password:
Connecting to the database: jdbc:oracle:thin:@orcl10g.corp.com:1521/orcl
At this stage it would fail to connect – and give me another 2 attempts before giving up. I examined the log files and discovered this error:
2010-09-21 21:10:25,205 | DEBUG | main | ConnectionPool | Unable to create a new JDBC connection. |
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12514, TNS:listener does not currently know of service requested in connect descriptor
What was the source of this problem. Again. It was a lack of experience with Oracle. I was accepting the default “database service name” of orcl. That was a mistake. vCD configuration tool asks for SERVICE_NAME instead of SID. The SERVICE_NAME is usually a long DNS style name. I should have twigged this ages ago, but it took me while to find this out. Heck, I even screen grabbed this part of the installer so I could check up on the names, but it was only today that I looked back at that screen grab:
The actually value I should have been typing was not the SID value (which is what somewhat confusingly vCD configure defaults to) but the long “Global Database Name” (although the configure utility refers to this as “Database Service Name”). If you're unsure what the Service Name or Global Database Name is you can find them by typing the contents of them in the .tnsnames.ora file held in $ORACLE_HOME/network/admin
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(SID = CLRExtProc)
(PRESENTATION = RO)
(ADDRESS = (PROTOCOL = TCP)(HOST = ORCL10G.corp.com)(PORT = 1521))
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.corp.com)
Generating Valid Certificates:
My other issue was with certificates. vCD requires TWO NICs – one for the vCD and one for the vCD Proxy Address. I tried using the keytool to generate self-signed certificates in Oracle Enterprise Linux. However, it just wouldn’t accept the format of the keytool command. It kept on saying that -keystore was unrecognized command – despite it actually being listed as an available command in the help…
I tried to install the Java RunTime 6 system to my vCD and located the keytool associated with it. But that didn’t work either. The part it kept on giving an error to was the -storetype JCEKS value
keytool -keystore certificates.ks -storetype JCEKS -storepass passwd -genkey -keyalg RSA -alias http
In the end I opened a command-prompt on my Mac, and used the keytool from there. Generated the certificate.ks, http.csr and consoleproxy.csr files to directory I created on the vCD of /opt/keystore. RESULT.
I’m not sure why I had problems with the keytool command on Oracle Enterprize Linux – but I guess you could easily say that these things happen to folks who use unsupported platforms!
Where I am with VMware Cloud Director:
Where am I with vCloud Director? I wasn’t on the beta programme for this product, and if I had I probably wouldn’t have had time to even download and install it – so busy I was with the View 4.5 guide. At the moment I’m in learning/discover mode. I’m planning a trip to see VMware in November, to spend some time with their vCloud guy in the UK. So I’m trying to prep for that – by reading the various guides and playing with the product in my labs.