Home > Ubuntu, Ubuntu Server > Run your own Ubuntu Enterprise Cloud, part 1

Run your own Ubuntu Enterprise Cloud, part 1

Disclaimer: I’m now working on the OpenStack project, which provides the same kind of functionality as Eucalyptus.

Important update: This howto was targeted at 9.10. The 10.04 release of UEC introduces plenty of simplification (autoregistration of components, uec-publish-tarball automatically registering cloud images…) that makes some of this guide obsolete. Please see https://help.ubuntu.com/community/UEC/ which is kept much more up to date. As an alternative, see http://testcases.qa.ubuntu.com/Install/ServerUECTopology1, which details the testcase we run to validate UEC internally.

Ubuntu Enterprise Cloud is the product, powered by Eucalyptus, that allows you to easily run your own Amazon-EC2-like private cloud. It’s a lot simpler than you’d think. With the recent Ubuntu Server 9.10 beta release, you are now able to easily deploy that infrastructure from the CD installer.

Prerequisites

To deploy a minimal cloud infrastructure, you’ll need at least two dedicated systems. One will hold the cloud controller (clc), the cluster controller (cc), walrus (the S3-like storage service) and the storage controller (sc). This one needs fast disks and a reasonably fast processor. The other system(s) are node controllers (nc) that will actually run the instances. These ones need CPUs with VT extensions, lots of CPU cores, lots of RAM, and fast disks. For both, 64-bit support is highly recommended.

Installing the cloud/cluster controller

Download the 9.10 Server beta ISO. When you boot, select “Ubuntu Enterprise Cloud install”. When asked whether you want a “Cluster” or a “Node” install, select “Cluster”. It will ask two other cloud-specific questions during the course of the install:

  1. Name of your cluster: pick any name you want 🙂
  2. List of IP addresses on the LAN that the cloud can allocate to instances: enter a list of space-separated unused IP addresses on your LAN.

When it reboots, run the following to get the latest eucalyptus package and reboot:

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo reboot

Installing node controllers

The node controller install is even simpler. Just make sure that you are connected to the network on which the cloud/cluster controller is already running. Take the same ISO, select “Ubuntu Enterprise Cloud install”. It should detect the Cluster and preselect “Node” install for you. That’s all.

It is also recommended to update to the latest 9.10 status:

$ sudo apt-get update
$ sudo apt-get upgrade

Connect your node controllers to the cloud

After all nodes are installed, you need to return to the cloud/controller and run the following command to make it “discover” your newly-installed nodes.

$ sudo euca_conf --no-rsync --discover-nodes

Confirm all the nodes it finds, and you are done. To check that your private cloud infrastructure is ready to serve, you need to retrieve admin credentials and run euca-describe-availability-zones command. Run the following on your cloud/cluster controller:

$ sudo euca_conf --get-credentials mycreds.zip
$ unzip mycreds.zip
$ . eucarc
$ euca-describe-availability-zones verbose

This last command returns a description of the capabilities of your cloud cluster, how many instances of each type you could run on it, for example:

AVAILABILITYZONE   myowncloud                 192.168.1.1
AVAILABILITYZONE   |- vm types                free / max   cpu   ram  disk
AVAILABILITYZONE   |- m1.small                0004 / 0004   1    128     2
AVAILABILITYZONE   |- c1.medium               0004 / 0004   1    256     5
AVAILABILITYZONE   |- m1.large                0002 / 0002   2    512    10
AVAILABILITYZONE   |- m1.xlarge               0002 / 0002   2   1024    20
AVAILABILITYZONE   |- c1.xlarge               0001 / 0001   4   2048    20

In part 2 of this series, we’ll cover bundling your first EMI (Eucalyptus Machine Image), based on Ubuntu Server 9.10 Beta. We’ll test it by starting an instance of it. Stay tuned !

Categories: Ubuntu, Ubuntu Server
  1. October 6, 2009 at 09:23

    Very cool article. Cant wait to see part II.

  2. October 31, 2009 at 20:59

    I’ve got a couple of server, that i didn’t quite know what to do with. I think im going to try out this Ubuntu Cloud Enterprise.

  3. mundania
    December 25, 2009 at 19:26

    is it possible to install Ubuntu Enterprise Cloud on virtual box??

    • Thierry Carrez
      December 25, 2009 at 20:17

      No, UEC is KVM-only.

      • david
        February 8, 2012 at 22:02

        I have it running on vmware server.

  4. Ben
    January 9, 2010 at 16:12

    Very helpfule, thanks!

  5. Vaishu
    February 6, 2010 at 05:57

    Hello …
    am getting this output .. how to set the VM type values from 0000 to change…

    please help me out

    AVAILABILITYZONE myowncloud 192.168.1.1
    AVAILABILITYZONE |- vm types free / max cpu ram disk
    AVAILABILITYZONE |- m1.small 0000 / 0000 1 128 2
    AVAILABILITYZONE |- c1.medium 0000 / 0000 1 256 5
    AVAILABILITYZONE |- m1.large 0000 / 0000 2 512 10
    AVAILABILITYZONE |- m1.xlarge 0000 / 0000 2 1024 20
    AVAILABILITYZONE |- c1.xlarge 0000 / 0000 4 2048 20

    • Thierry Carrez
      February 6, 2010 at 17:29

      This is usually done by adding Node Controllers.

    • Phuoc
      September 19, 2011 at 17:07

      you can try this on NC machine: /usr/sbin/ntpdate
      I have same problem with you. I checked the registration between front-end and back-end but nothing changes. finally, i found this solution on internet. NC and front end are different time, thus, they can’t sync together. I hope it help you.

  6. galactic L
    February 16, 2010 at 11:44

    Hi I have a 9.10 ubuntu controller with 3 additional nodes. Everything worked fine with your instructions up till the time I entered the last command:

    “euca-describe-availability-zones verbose”

    And then got the following error message.

    “[Errno 113] No route to host”

    It found the new nodes no problem but can’t get the detailed verbose descriptions you pointed out. Any ideas? Thanks

    • March 31, 2010 at 18:51

      check your $HOME/.euca/eucarc

      most probably, the URLs in there are wrong.

      you may also re-download mycreds.zip

  7. poorani
    February 22, 2010 at 06:04

    I get error while running this command

    “euca-describe-availability-zones verbose”.while using this command it shows

    AVAILABILITYZONE cluster 192.168.1.5
    AVAILABILITYZONE |- vm types free / max cpu ram disk
    AVAILABILITYZONE |- m1.small 0001 / 0001 1 128 2
    AVAILABILITYZONE |- c1.medium 0001 / 0001 1 256 5
    AVAILABILITYZONE |- m1.large 0000 / 0000 2 512 10
    AVAILABILITYZONE |- m1.xlarge 0000 / 0000 2 1024 20
    AVAILABILITYZONE |- c1.xlarge 0000 / 0000 4 2048 20

    instead of

    AVAILABILITYZONE cluster 192.168.1.5
    AVAILABILITYZONE |- vm types free / max cpu ram disk
    AVAILABILITYZONE |- m1.small 0004 / 0004 1 128 2
    AVAILABILITYZONE |- c1.medium 0004 / 0004 1 256 5
    AVAILABILITYZONE |- m1.large 0002 / 0002 2 512 10
    AVAILABILITYZONE |- m1.xlarge 0002 / 0002 2 1024 20
    AVAILABILITYZONE |- c1.xlarge 0001 / 0001 4 2048 20

    • Thierry Carrez
      February 22, 2010 at 07:17

      That all depends on your node controller. If it only has one CPU or less than 512 Mb of RAM, then you obviously won’t have the possibility to run VM types with 2CPUs or 512 Mb of RAM…

      • poorani
        February 25, 2010 at 06:02

        How can it be solved.Either by adding nodes to cluster controller or any other solution is there?
        Because I proceed after that but it shows error while running this command

        $ euca-run-instances -k mykey emi-XXXXXXXX -t c1.medium

        It shows No available resources spce enough …. likr something.

  8. June 10, 2010 at 18:27

    Great post. Thanks for share..

    please visit my blog
    http://satyap06.student.ipb.ac.id/

  9. July 16, 2010 at 16:10

    It helps much dude..
    thumbs up..

  10. December 27, 2010 at 18:13

    I have setup the Cloud-A with 1 – [CLC+CC] and 2 – [NC] computers. I have another Cloud-B with same configuration. [using the Ubuntu Enterprise Cloud]

    Both of them working fine individually, in the same LAN.

    Now if I want to add the NC of Cloud-A to CC of Cloud-B, [in case the resources of Cloud-B are exhausted] how can I make it possible ? I guess this calls for the interoperability stuff…

    Could you please explain what happens exactly when we ask for instance, the direct interaction happens between the client and NC or it goes through the CLC and CC ?

    What I want to say is, say there are multiple cloud providers. A user is subscribed to any one of them, say Cloud-A for IaaS. As the requirements are dynamic, all the resources of Cloud-A may get exhausted. There may be another Cloud-B which can provide the services but that Cloud-A can’t ask the client to go for Cloud-B.

    So if it is possible to have some co-ordination between this two providers to share resources mutually, making client fully unaware of whats going on in the background….?

    Please reply..

    I am sorry if I’m doing mistake anywhere… Thanks in advance 🙂

    • Thierry Carrez
      December 28, 2010 at 12:48

      About moving NCs between zones: I don’t think this is possible. AFAICT the interaction goes from client to CLC, then from CLC to CC, then from CC to NC. Feel free to ask your questions on the ubuntu-cloud mailing-list for more complete answers.

  11. shahul
    March 9, 2011 at 08:29

    how to add my own data to the cloud created…

  12. david
    May 26, 2011 at 16:35

    I have UEC running as a VM on SUSE Enterprise.
    Is there a hardware constraint that will ultimately prevent it from working correctly?
    I just finished the build, and both seem to be working.

    • Thierry Carrez
      May 27, 2011 at 06:53

      Depending on the virt technology used, you might have trouble starting VMs inside the VM (like, no KVM support inside the VM).

  13. June 21, 2011 at 17:22

    Nice article..
    But I have one doubt.While installing cloud/cluster controller we have to give list of available IP addresses But we have DHCP in our network. I want virtual machines to get IP addresses from DHCP. How can I do that?

    • Thierry Carrez
      June 27, 2011 at 07:16

      Last time I looked at Eucalyptus that was impossible. I’d ask on their support forums ?

    • July 10, 2011 at 19:57

      UEC runs it’s own DHCP server to assign the “public” ip’s to your private virtual instances. You specify a range of IP’s that it uses to delve out. You can then manually override one of those instances to give it a reserved IP.

      You don’t want to have your primary LAN assigning the DHCP addresses though – and in fact that doesn’t work. Just set aside a range of IP’s (for instance 192.168.1.100-150) that are NOT delved out by your main network DHCP server, and tell Euca to use that range when starting instances.

  14. manojkumar
    July 18, 2011 at 13:52

    shall i able to try this step with VM ware ???? and shall i install cloud controller node controller in same machine for lab purpose ? pls repy

    • Thierry Carrez
      July 18, 2011 at 19:07

      No, with Eucalyptus you should use two separate physical machines.

      • Manojkumar
        July 19, 2011 at 07:39

        Thanks for ur information.

      • Manojkumar
        July 19, 2011 at 09:27

        I s it possible with xen ?

  15. muthukumar.V
    August 24, 2011 at 09:55

    i am doing a project on data security for virtual machine in cloud computing. i have a doubt for how the machine are moved to cloud computing.

  16. jitendra
    September 2, 2011 at 12:55

    hello,
    i am using UEC to setup cloud the machine (node controller ) does not support VT-x
    so can i use XEN in place of it because when run the command :
    “euca-describe-availability-zones verbose”.while using this command it shows

    AVAILABILITYZONE cluster 192.168.1.5
    AVAILABILITYZONE |- vm types free / max cpu ram disk
    AVAILABILITYZONE |- m1.small 0001 / 0001 1 128 2
    AVAILABILITYZONE |- c1.medium 0001 / 0001 1 256 5
    AVAILABILITYZONE |- m1.large 0000 / 0000 2 512 10
    AVAILABILITYZONE |- m1.xlarge 0000 / 0000 2 1024 20
    AVAILABILITYZONE |- c1.xlarge 0000 / 0000 4 2048 20

    means node is not register yet so i tried to register it during this i face the problem of vt-x
    then i search about this prob then came to know that XEN can be used am i right ?
    please give me response for it , it is very important for my finla year project.

    thank you
    regards
    Jitendra Singh Rajawat

  17. October 28, 2011 at 06:15

    How big is the ubuntu – OpenStack community? Should I settle with eucalyptus? I am having my thesis and cloud computing is a part of my research.

    • Thierry Carrez
      October 28, 2011 at 07:05

      At this point the momentum seems to be behind OpenStack — though I bet my Eucalyptus friends would disagree 🙂

  18. ivan
    November 14, 2011 at 06:54

    i have been working in vmware i got 2 virtual machines one server and one node all steps i think that i’m doing well but when a writte the Ip 192.168.2.100 ip from server and the port 8443 it show me the homepage and then i login and there’s no problem , i can see that i don’t have images so i decide go to the tab store and then it’s shows me error 60 : the credentials …… no found or something like that but i download the credential through the web api and i do the steps but it can’t conected to internet…. my server has two target one has IP 192.168.1.xx dhcp go to internet and the cloud lan ti’s 192.168.2.xxx for my nodes , i know how can i acces to internet througth the node when i put the ipaddress :8443 and tab store and it show me the images…. thanks for everything

  19. Nicola
    November 18, 2011 at 17:34

    Hi! I have the same problem of Vaishu, i have this with euca-describe-availability-zones verbose:

    AVAILABILITYZONE cluster1 192.168.1.3
    AVAILABILITYZONE |- vm types free / max cpu ram disk
    AVAILABILITYZONE |- m1.small 0000 / 0000 1 192 2
    AVAILABILITYZONE |- c1.medium 0000 / 0000 1 256 5
    AVAILABILITYZONE |- m1.large 0000 / 0000 2 512 10
    AVAILABILITYZONE |- m1.xlarge 0000 / 0000 2 1024 20
    AVAILABILITYZONE |- c1.xlarge 0000 / 0000 4 2048 20

    I can’t add a node… If i got list-nodes is empty and infact in the eucalyptus.conf i have NODES=”” (no nodes!!!).
    But i have one node and infact i can deregister it with –deregister-nodes and if i register it with sudo euca_conf –register-nodes 192.168.1.2 i have:

    INFO: We expect all nodes to have eucalyptus installed in //var/lib/eucalyptus/keys for key synchronization.
    Warning: cannot file file node-cert.pem in //var/lib/eucalyptus/keys/
    Warning: cannot file file cluster-cert.pem in //var/lib/eucalyptus/keys/
    Warning: cannot file file node-pk.pem in //var/lib/eucalyptus/keys/

    Trying rsync to sync keys with “192.168.1.2”…done.

    In phase of installation i check that in the phase of ssh i have:

    sudo -u eucalyptus ssh-copy-id -i ~eucalyptus/.ssh/id_rsa.pub eucalyptus@192.168.1.2
    [sudo] password for nicola:
    The authenticity of host ‘192.168.1.2 (192.168.1.2)’ can’t be established.
    RSA key fingerprint is 2c:44:5d:6b:b6:b1:74:36:5a:9d:8d:7d:c6:42:e2:4a.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added ‘192.168.1.2’ (RSA) to the list of known hosts.
    eucalyptus@192.168.1.2’s password:
    Now try logging into the machine, with “ssh ‘eucalyptus@192.168.1.2′”, and check in:

    .ssh/authorized_keys

    to make sure we haven’t added extra keys that you weren’t expecting.

    I try to review the –list-nodes and i see:

    nicola@nicola:~$ sudo euca_conf –list-nodes

    nicola@nicola:~$

    Can anybody help me??!?!?

    Tnx!!!!!

    Nicola

    • priya
      February 14, 2012 at 06:07

      I am having same problem. Can any body help?????????????

      • February 14, 2012 at 09:49

        Hi,

        i had faced similar problem euca-describe-availability-zones verbose showing 0/0
        it means zones are not available it may be of two reason
        1) node is not registered on front end just check it by –list-nodes and also verify it from eucalyptus.conf file NODES=”ip of node”.

        2) node is not communicating with front end check it through nc.log file whether it is growing or not.

  20. yemmy
    November 21, 2011 at 19:23

    please does the installation of the cloud controller and node work on VMware or virtual box?
    i have it installed already on VMware but i have been unable to connect to the internet even though the server and the node can ping each other successfully.
    i did the same installation on virtual box and i am connected online to run updates on both sides but i could not access the https://cloudcontrollerip:8443 through the node.
    doing this for my project and am running out of time.
    thanks

  21. November 25, 2011 at 11:11

    Hi. Tnx for the answer! i’ve resolved the problem registering and deregistering both the cluster and nodes.

    Anyone has installed the platform (PaaS) on the IaaS cloud?

    Tnx!

  22. January 20, 2012 at 17:20

    Can anybody explain how to actually perform ssh for registering a node.
    Also how the instances to be assigned for them

  23. Rizwana
    January 20, 2012 at 17:28

    how to register nodes using ssh

  24. naveen
    January 31, 2012 at 05:44

    i’m trying to implement cloud in virtual box…
    but cloud controller and node are not communicating …
    following error is coming while i using the command
    “sudo euca_conf –no-rsync –discover-nodes”

    ERROR:you need to be on cc host and cc host must running

    • jitendra
      January 31, 2012 at 16:18

      ur cluster is either not started or u are not on the same host on which cluster controller is installed so first start cluster controller i hope ur prob will be solved.
      jitendra

  25. Ajinkya
    December 18, 2012 at 09:17

    Hello,
    I am tryeng to install node controller. But it is not detecting Cloud controller running on the network. Please help me.

  26. asweng
    January 4, 2013 at 21:39

    dear sir

    how can i bring internet access to CLC mechine ? how to set up LAN between clc and nc
    please help i cant finsh installation because of internet access

    thank you in advance

  27. asweng
    January 5, 2013 at 19:09

    hi everybody
    i try to build private cloud using UEC with eucalyptus cd install i implemented in two mechine one contain CLC,SC,CC,Walrus and the other contain node controller i am using ubuntu 11.04 LTS eucalyptus 2.02 version

    The networking in cloud implemented with two networks – private and public. The public network would be accessible to users and administrators from the “outside world”, and the private network is reserved for the backend communication, and is private for the cloud(between NCs and CLC mechine)
    my problem is the two mechine(i m using 2 labtop) have one NIC eth0 its ok for node because i need one interface for private network but the problem is with CLC mechine need 2 interface eth0 (used with public)and eth1( used with private to communicate with node)
    the other problem is how to bring internet connection to CLC mechine as i follow UEC guide it shoud assign a static ip addres to eth0 which is the ip address of cloud but i cant used static addres because i cant get internet connection in this case .

    i got internet connection from my ISP through LAN local area connection and set a VPN with user name a passward that ISP gave me and use dhcp so i dont have a static ip address , this is on my other labtop which i used it to coonect to internet .

    so how i can implement clc in mechine with one NIC , and how i can bring intetnet access to it . what shoud i do

  1. October 5, 2009 at 18:48
  2. October 6, 2009 at 07:05
  3. October 6, 2009 at 08:18
  4. October 7, 2009 at 09:33
  5. October 9, 2009 at 08:52
  6. October 9, 2009 at 22:54
  7. October 31, 2009 at 21:18
  8. November 20, 2009 at 10:37
  9. December 11, 2009 at 15:35
  10. January 21, 2010 at 07:26
  11. May 3, 2010 at 03:19
  12. June 21, 2010 at 10:28
  13. June 21, 2010 at 13:59
  14. June 23, 2010 at 11:49
  15. July 30, 2010 at 09:46
  16. October 23, 2010 at 08:59

Leave a comment