Monday, 10 May 2010

Eucalyptus problem on Ubuntu 10.04 (Lucid)

Ubuntu 10.04 (Lucid) is out for a while and I wanted to try to install a private UEC on a previously installed Ubuntu 10.04 system only for testing something. I did not want to use the CDInstall method since I like to do the magic not just watching that. So I have decided to install from packages. (Ok you are right I should have tried to do it from Eucalyptus source but I did not have enough time.)
Unfortunately it was not straightforward. During installation of eucalyptus-cloud package I got an error.

Setting up eucalyptus-cloud (1.6.2-0ubuntu30.2) ...
restart: Unknown instance:
(Than waiting long....~60 sec)
eucalyptus-cloud stop/post-start, (post-start) process 26868
eucalyptus-cloud-publication start/running, process 27475

Hmmm. I have checked whether it is an install issue only or also a runtime problem. Checked the configuration files but they were fine. Eucalyptus start is slow and finally failed without visible error message. The cluster controller web interfaces is not working and service can not be started successfully.
Also stopping the service dropped an error.

root@ubuntu:~# stop eucalyptus-cloud
stop: Unknown instance:

I wanted to check the init scripts but here I faced the problem that SysVinit had been replaced by UpStart which I did not know. So made a trip in that area to get to understand. To be honest it is not a well documented thing and the concept is a bit different than SysVinit. But for a reason.
But back to the track I have realized that the the eucalyptus startup died very early and the command failing is executing eucalyptus-cloud binary. So started it manually and saw that it drops the below error.

root@ubuntu:~# /usr/sbin/eucalyptus-cloud
[error:0185] User 'eucalyptus' validated
[error:0077] Path /usr/lib/jvm/java-6-openjdk is not a directory
[error:0323] Cannot locate Java Home

After I have seen this it was pretty straightforward to solve. I did not have openjdk but I had sun-java6-jdk. I had it from the partner repository anyway. ;) The problem here is that although eucalyptus-cloud depends on some java package the proper one was not installed. So I have installed openjdk6 by hand and than everything was working fine.

root@ubuntu:~# aptitude install openjdk-6-jre-headless

If eucalyptus does not work even after openjdk6 install you can reinstall eucalyptus-cloud after or together with openjdk6.

root@ubuntu:~# aptitude purge eucalyptus-cloud eucalyptus-cc eucalyptus-sc eucalyptus-walrus
root@ubuntu:~# aptitude install openjdk-6-jre-headless eucalyptus-cloud eucalyptus-cc eucalyptus-sc  

In theory this works with sun's java also but than you have to define JAVA_HOME in advance starting eucalyptus-cloud  and than can try to use sun (oracle) java version but openjdk is working fine without any problem.
Some useful links if cloud is up:
  • ElasticFox config (Note: Since version 1.7 it does not work with Eucalyptus. But hope it will be corrected soon. In Eucalyptus.)