Background
And you can find the 823MB ISO I used for my demonstration here:
I took the 10.04 LTS Desktop, and modified that ISO according to the instructions at:
I removed a ton of unnecessary packages for cloud computing, such as OpenOffice, Translations, and the Games, Graphics, Sound & Video applications. I also added the necessary Eucalyptus applications, and provided some initial configuration. I also pre-loaded a small, ttylinux image in the ISO itself (username=root, password=linux).
Motivation
Why would anyone want to do this? Well, for many of the same reasons Linux Desktops landed on LiveCDs. It's useful for testing, prototyping, and learning about the environment, before deploying to real hardware.
It used to be amazing that you could carry around a complete, bootable desktop operating system in your pocket. Now, you can carry a whole cloud! What's next? :-)
Caveats
So this LiveISO is completely unsupported right now. This was just a weekend hack that I put together because I thought it might be interesting, and because some people said it couldn't be done ;-)
This LiveISO is not meant to replace the Ubuntu 10.04 LTS Server ISO, from which I recommend you install UEC, if that's your goal.
How to Use this LiveISO
Download the ISO.
If you wan to try this out on real hardware, fire up Startup Disk Creator. Insert USB flash disk, at least 2GB in size (the bigger, the better). In Startup Disk Creator, create a very large persistence file with the slider toward the bottom.
You can now boot this on a system that has a CPU with VT extensions (try running kvm-ok to find out if your hardware supports VT), and with at least 4GB of memory. Sorry about the memory requirements -- Java is a memory hog.
Alternatively, you can actually be able to boot this ISO entirely inside of a KVM, if you can give it enough memory.
Basically, I gave this KVM all of my free memory (2300MB), and 2 CPUs, using this command:
kvm -m 2300 -smp 2 -cdrom ubuntu-10.04-ueclive-amd64-custom.iso
A few minutes after booting (~4 minutes), I can see within Byobu that all of the Eucalyptus services are running: CLC,WC,CC,SC,NC.
Once your CLC is running, you can grab your credentials:
sudo euca_conf --get-credentials mycreds.zipunzip mycreds.zipln -s eucarc .eucarc
Now, register the node.
sudo euca_conf --register-nodes 127.0.0.1
And check your cluster's availability.
euca-describe-availability-zones verbose
With a little luck, you should see some free VMs!
Next, register an image. We included a tiny, ttylinux one on the ISO. You can try to run bigger images, but note that it will be rather slow (either you're reading/writing from slow flash media, or you're running in KVM, which means your VM will be running in non-accelerated QEMU).
uec-publish-image -K vmlinuz i386 tty-linux.img foo
And check your image's registration.
euca-describe-images
Now, run your image!
euca-run-instances emi-DEADBEEF --addressing privatewatch -n 5 euca-describe-instances
You should that go to "running" eventually. If you're already running inside of KVM, this QEMU emulated virtual machine will be very slow. You should be able to ping it, and you might even eventually be able to ssh to it.
euca-authorize default -P tcp -p 22 -s 0.0.0.0/0ping 172.19.1.2ssh root@172.19.1.2
You can also explore the UEC administrative web interface. The LiveISO still has Firefox. You can point it to http://localhost, and login with admin/admin credentials.
So this is all fine and dandy if you want to try out UEC on your own hardware. But that's not very cloud of you... Why don't you just try out UEC in EC2? Do what, huh? Yup, totally doable too. The work described above inspired Scott Moser to publish his own how-to on the matter:
So What's Next?
Well, I'm actually trying to improve this a bit during the 10.10 cycle. You can follow our plans here. Basically, I'd like to create a UEC Live ISO seed, and have Ubuntu's cdimage publisher crank one out on a weekly basis. There are a few hiccups around auto-registration (which you might encounter in your testing of the current ISO) -- these should be fixed.
Hopefully you found this article useful, and might use this ISO in your own demonstration, education, and edification around Ubuntu's Enterprise Cloud!
:-Dustin
This ISO is x64 will not work on kvm for i686 ubuntu
ReplyDeleteChristophe-
ReplyDeleteYeah, sorry, 64-bit only.
:-Dustin
Can I boot this image on two physical machines and connect them into one cloud? (Without installing anything on the hard disk on either machine.)
ReplyDeleteMarius-
ReplyDeleteNot as such. It's really an all-in-one system.
Great stuff, but a few typos:
ReplyDelete* "euca-describe-availability-zones --verbose" should be "euca-describe-availability-zones verbose"
* "euca-run-instance emi-DEADBEEF --addressing-private" should be "euca-run-instance emi-DEADBEEF --addressing private"
also:
* I could not find the ttylinux password in the blog, I might have a bad sight...
* Also, since this is a local only setup, why don't we "sudo euca_conf --register-nodes 127.0.0.1". That work quite well on my setup and it not "site specific".
Hope this help.
Thanks for the fixes, I have updated the post.
ReplyDeleteCheers!
:-Dustin
one more "euca-run-instance" -> "euca-run-instances"
ReplyDeleteGreat creative work. I want to use this as a template for my own install
ReplyDeleteYou talk about ssh into this machine
what is the root password?
ubuntu@ubuntu:~$ sudo euca_conf --register-nodes 127.0.0.1
ReplyDeleteINFO: 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/
Warning: cannot file file cloud-cert.pem in //var/lib/eucalyptus/keys/
Could I install this setup permanently on a KVM-enabled Dell laptop ? ? ?
ReplyDeleteHi, Dustin!
ReplyDeleteI am interested to hear your presentation but the link you gave (URl: http://uds.ubuntu.com/audio/uds-m/2010-05-14/2010-05-14_140001_canopee_lightning-talks.ogg) doesn't work. Is there some other URl that could work? Thanks!
- Jusle
The iso file is no longer available. Can you please reupload?
ReplyDeleteDear Dustin,
ReplyDeleteThe iso is not found in the published link. Can you please re-upload? Thanks.