== How to run Eucalyptus on a stand-alone Ubuntu 9.04 desktop machine == These instructions describe how to run all three services comprising Eucalyptus on a single machine (say, a laptop). They are based on the content of the Ubuntu Community Documentation on installing Eucalyptus at: https://help.ubuntu.com/community/Eucalyptus Reader is expected to be familiar with the above process. The instructions here are specific to Ubuntu 9.04 Jaunty, and will probably differ significantly for later version of Ubuntu. This document also assume that you are installing on Ubuntu Desktop Edition. If not, then the job will probably be a bit easier (ie, you will not have to fight NetworkManager). We also presume that the machine is getting its IP address by DHCP. === Limitations === Per Eucalyptus documentation, the following Eucalyptus features will not work when all three Eucalyptus are being run on a single machine. - EBS persistent storage volume - Security groups (ingress network filter and network isolation) In fact, only SYSTEM networking mode will work as expected when the node controller is being run on the same machine as the cluster controller. === Networking === The biggest problem with installing Eucalyptus on a Ubuntu desktop is the requirement to have an Ethernet bridge. NetworkManager, the applet that control network interfaces on Ubuntu desktop, do not have specific support for making an Ethernet interface a bridge. As such, we will have to work around NetworkManager and statically configure the bridge interface. If we still want to be able to use NetworkManager for wireless connections, we need to jump through a few hoops. First step is to install the bridge-utils package, which will allow us to configure a wired network interface as an Ethernet bridge sudo apt-get install bridge-utils ==== Configure the bridge interface ==== Edit /etc/network/interfaces. Assuming the machine you are working on has two network interface(a wired and a wireless one), the file needs to look like the following: -------------------------------- # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet manual auto br0 iface br0 inet dhcp bridge_ports eth0 -------------------------------- From there on, your wired Ethernet interface will not be managed by NetworkManager and will show as disconnected in the desktop notification bar, even when it is connected indeed. Because you still want to be able to use wired networking, you need to make a few changes to the DHCP client configuration to make it more aggressive in getting an IP by DHCP, and also to make it block for a shorter amount of time when you boot disconnected from the network. For this purpose, you may add the following two lines to /etc/dhcp3/dhclient.conf: ----------- timeout 10 retry 60 ----------- Reboot to apply the change, and confirm that the machine boots fine with and without being plugged in the network. ==== Preventing NetworkManager from overwriting DNS configuration ==== NetworkManager will overwrite /etc/resolv.conf with values it believe are appropriate for your connection state. That means that, when you connected on the wired network, NetworkManager will think you are offline and will empty the content of /etc/resolv.conf, preventing proper name resolution to happen. As such, you will need to hard-code a DNS server in /etc/resolv.conf, and make the file immutable to prevent NetworkManager from messing it. In choosing the DNS server to use in /etc/resolv.conf, you need to make sure it is one that is accessible from anywhere you may be connecting from. For that matter, you can use a public one (such as OpenDNS), or install a caching DNS server (such as dnsmasq) locally on your machine. If you choose to use OpenDNS, your /etc/resolv.conf file may like something like: ------------------------- nameserver 208.67.222.222 nameserver 208.67.222.220 search ubuntu.com ------------------------- If you decide to run your own caching DNS server, it may look like the following instead: -------------------- nameserver 127.0.0.1 search ubuntu.com --------------------- You then need to make the file /etc/resolv.conf immutable to prevent NetworkManager from changing it with you connect then disconnect from wireless. sudo chattr +i /etc/resolv.conf === Install Eucalyptus === From there on, you can install Eucalyptus as explained in the documentation. sudo apt-get install eucalyptus-cloud eucalyptus-cc eucalyptus-nc You will need to change only these directives in /etc/eucalyptus/eucalyptus.conf: NODES="localhost" VNET_INTERFACE="br0" VNET_BRIDGE="br0" You will also need to change the eucalyptus-nc boot order to work around bug #364723 sudo update-rc.d -f eucalyptus-nc remove sudo update-rc.d eucalyptus-nc start 99 1 2 3 4 5 . stop 99 0 6 . From there on, the installation should follow similar course as what is described in the documentation.