clarification of UEC image creation

Asked by Walt Corey

This question is specific to UEC 2.x, (not 1.5 or 1.6). I don't know if, for purposes of image creation, there is much or any difference but for the sake of argument, let's assume we are referring strictly to UEC 2.x.

What I am trying to find, or establish, is the cleanest, most scriptable method to build a dedicated UEC image based on some release of Ubuntu plus some select packages plus some software unavailable in packages. On the surface vmbuilder seems ideally suited for this, but herein lies the question.

I created a vm which seems to work just fine. I added tomcat and tomcat-admin, I added unattended-updates etc. This VM is based on Maverick. The user/password for vmbuilder defaults to ubuntu/ubuntu. I think that's ok. I can start this image under virt-manager and log in and add packages not defined to vmbuilder and scp software I've downloaded and configured on the desktop. So far, so good.

It seems the UEC preferred way to create a specific instance is to download it from the 'store'. That's something of a misnomer as the inventory in the store never changes. Part 1 of the question is the advantage here is all the messing around with rdimage and kernel and root image are bypassed as, perhaps, is the logic to support password-less logins. Is this correct?

Once the image is downloaded and started one can shell into it and run tasksel to add mysql or tomcat or apache etc. This is fine so long as the image is running as these additional packages cease to exist at shutdown. The competing method of image creation is to start with a running system, copy out the kernel, the ram disk and add them both into Walrus along with the actual image file, the vmserver.img file created by vmbuilder, presumably. Next question, is that correct? One salient step prior to this is to add curl and update rc.local to query the private key of the user starting the instance in order to accomplish authentication.

Next part of the question: Why is this section of rc.local not part of a running instance of an image downloaded from the 'store'?
If it is not there in the supplied images, is it really needed? I understand that functionality needs to get done somewhere but it does not appear to be in rc.local. How is that done with the images provided by the store?

I mentioned earlier, tasksel. One of the options of tasksel is Ubuntu Enterprise Cloud (cloud instance) with a task of uec.
According to https://help.ubuntu.com/community/Tasksel one could just apt-get install that mentioned task, i.e. uec or tomcat-server or tomcat-admin etc. uec as a package to add via apt-get does not appear to exist. Is this a bug? However, I did add to my newly created VM of 10.10 tasksel as a package and, via tasksel, added uec to my VM. It did not appear to work but the only notification I received was one line saying it didn't install yet the tasksel menu shows it installed. I assumed this tasksel package would provide the secret sauce required for user authentication. Is that correct?

Putting this altogether there seems to be 3 ways to create an image, some simpler than others, the UEC method, the Eucalyptus method and the CSS method. Wasn't there, or is there, a method or intent to have vmbuilder actually create a usable UEC image? I realize if one wants to add non-package software they must intervene in the procedure.

Is there a clean method to, in the UEC 2.x environment, to build out a image from a base, add stuff to it and have the constituent parts flow into Walrus? Referring back to my Maverick VM I can scp out the kernel, the ramdisk and add the myvm.img into Walrus. Will that suffice for authentication? How is authentication handled in the images downloaded from the store, where rc.local is untouched?

Thanks and Happy New Year!
Walt

Question information

Language:
English Edit question
Status:
Solved
For:
Eucalyptus Edit question
Assignee:
No assignee Edit question
Solved by:
Walt Corey
Solved:
Last query:
Last reply:
Revision history for this message
Walt Corey (waltc) said :
#1

Is the following indicative of what the uec tasksel task adds, precluding the CSS curl and rc.local requirement? What process occurs to place images into the store? Is it largely manual or automated?

Jan 2 19:12:04 myvm [CLOUDINIT] 2011-01-02 19:12:04,367 - cloud-init-cfg[INFO]: cloud-init-cfg ['all']
Jan 2 19:12:04 myvm [CLOUDINIT] 2011-01-02 19:12:04,398 - DataSourceEc2.py[WARNING]: waiting for metadata service at http://169.254.169.254/2009-04-04/meta-data/instance-id
Jan 2 19:12:04 myvm [CLOUDINIT] 2011-01-02 19:12:04,398 - DataSourceEc2.py[WARNING]: 19:12:04 [ 1/100]: http error [404]

Revision history for this message
Walt Corey (waltc) said :
#2

I believe I can go ahead and answer/solve this myself, for the benefit of those that happen onto this question.
The short answer is cloud-init. This currently appears to be unique to Ubuntu with the exception that EC2 recently released CentOS images that support cloud-init.

More on this may be found at

http://cloud.ubuntu.com/
https://help.ubuntu.com/community/CloudInit

And/or look for web pages from Ahmed Kamal

Revision history for this message
Walt Corey (waltc) said :
#3

marking this solved