Category Archives: Eucalyptus

Feedback to the Euca2ools User Guide

In an earlier post, I said that I felt we had succeeded in making a clear and understandable user guide for Euca2ools. While I still feel that this is the case, we got some useful criticism of the guide from the last group to present on Wednesday. This group was tasked with trying to use Euca2ools and Eutester by only following the guides on our wiki, and then to report their findings and suggestions. They told us that while the guide overall was well-made, there were two areas that were difficult to follow.

The first issue was finding the user credentials when setting up Euca2ools. I admit to having trouble with this as well at first, but it did not even cross my mind to put instructions into the guide on how to find your credentials. Oh well, that is why having other people critique your work is good! I edited the wiki to fix this problem.

The second issue was about getting a working SSH connection. This is the biggest weakness of the guide. Getting SSH to work consistently never happened for us. We have several theories on why it failed so often. We suspect  as dynamic IPs could be the culprit. I do not have any solutions currently better than what is already posted in the guide, so it will stay as it is for now. Perhaps a future class will be able to fix up that part of the guide for us.

From the blog Code Your Enthusiasm » WSU CS by Jon and used with permission of the author. All other rights reserved by the author.

Eucalyptus Presentations

On Wednesday, all of the groups presented on what they had accomplished during the semester. I did not realize how much work we actually got done as an entire class until I saw the presentations. There were 7 presentations in all:

  1. Eutester Issues
  2. Cloud Overview
  3. Eutester Documentation
  4. Infrastructure
  5. Leveraging Python for Eutester
  6. Using Euca200ls (my group)
  7. Installing Euca2ools and Eutester

The first group gave an overview of the open and closed issues on Github. The second group gave a very detailed overview of the ideas behind cloud computing and defined many general and Eucalyptus-specific terms. The third group described the process of attempting to document the Eutester code. Dave and Mike, the infrastructure group, had an entertaining discussion about how much frustration went into setting up a working Eucalyptus cloud. The fifth group went into depth about using Python with Eutester. My group described the main functions of Euca2ools and the process of creating a user-friendly guide on our wiki. We actually succeeded in demonstrating a working SSH connection to an instance created from an image that I uploaded to our Eucalyptus cloud, which I consider to be a big accomplishment! The final group critiqued the experience of attempting to get several modules up and running, specifically Euca2ools and Eutester, just by following the wiki guides that we had all created.

It was very interesting to see the other groups present, especially the groups involved with Eutester. Spending most of my time with Euca2ools, I did not look into Eutester very much at all. Seeing all of my classmates describe their experiences with it was great to see.

From the blog Code Your Enthusiasm » WSU CS by Jon and used with permission of the author. All other rights reserved by the author.

Evaluation of the Euca2ools User Guide

Most of my work this semester has been experimenting with Euca2ools and modifying our User Guide to reflect my findings. My primary goal in collaborating on this User Guide was to make it easy to follow, especially for a Linux novice such as myself. Ultimately, I think we achieved our goal. My group partners are definitely the experts and filled the guide with very useful information on how to perform the various tasks. I took their knowledge and formatted it, expanded on it, and tried to explain as best I could what each command was doing. A lot of trial and error went into this, as a lot of the time I wasn’t exactly sure what I was doing. A positive side-effect: fumbling through Euca2ools and revising this guide over the semester did help me a lot with my knowledge of Linux.

I wanted someone who was completely new to Euca2ools to be able to successfully do something productive by only following our guide. I think we came pretty close. Now that the semester is at an end, the guide is as finished as it will be until perhaps a future CS class takes over on the same project. It definitely is not 100% done. Eucalyptus is a huge project and Euca2ools is a major part of it. There is always more that we could do in writing the user guide, but I am happy with the progress we made.

From the blog Code Your Enthusiasm » WSU CS by Jon and used with permission of the author. All other rights reserved by the author.

Success!

Today is a big day in working with Euca2ools on our cloud. I have successfully uploaded an image, kernel, and ramdisk to the Matrix server and an instance is actually running off of my image. This has been a trial and error process that has taken weeks, and I am pretty satisfied. Here is the proof:

The instructions posted on our user guide by Dhimitri and Mindo were really helpful, but of course being a complete noob to Linux I was confused by some parts. The wiki will be changing slightly to reflect my new found understanding and hopefully the revisions will help anyone else trying out this process in the future.

From the blog Code Your Enthusiasm » WSU CS by Jon and used with permission of the author. All other rights reserved by the author.

More Python

While things with infrastructure were being dealt with, I decided to jump on the eutester documentation project. So, during class I cloned the repo that kwurst forked and got to it. I took some time throughout the week to go through multiple directories in the eutester code and try to understand how it all worked and connected. I’m still not sure how everything works, but I do have a much better understanding of the code.

As far as documentation goes, I did do some in the eucaweb directory. The files i added to were the euwebaccount.py and euwebgroup.py. These are fairly basic scripts that setup accounts and groups respectively for testing purposes. Once I was done with commenting those for the day, i committed and pushed my changes to the repo. I checked the github page just to make sure and seeing my first push ever was pretty cool!

It looks like a few of us are doing good on commenting the code, so I wouldn’t be surprised if we had this project done within the next week. Now that I have a better understanding of the code I will be able to get some more commits in before the semester is over.

From the blog clacroix12 by clacroix12 and used with permission of the author. All other rights reserved by the author.

Eucalyptus and euTester

I haven’t blogged recently, life has gotten a bit in the way. To this point, though, I have been rather busy so let us start from the beginning.

A while back we had a discussion in class about how we were going to license our documentation and wiki content which was a problem that needed an immediate solution. I was able to get in touch with a gentleman in charge of such things over at Eucalyptus and learned we will be using the CC-BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/) to license all our content. Additionally, I found that the people over at Eucalyptus use XML for all their docs so I encouraged the class to convert all current documentation over to XML.

The next project that I jumped on to is documenting the existing euTester code. I’m working on that project with a few other classmates and it’s unlike any other project I’ve worked on. This will be the first time that I look through someone else’s code and document it. I am looking forward to it though. Aside from that I’ve spent the last few weeks taking care of some health issues that popped up, but I’m happy to report that I’m back on track. Look for more consistent updates starting this week.

From the blog The Mind of Mattamizer » WSU CS by mattamizer and used with permission of the author. All other rights reserved by the author.

Meeting 8 – Adding images onto the cloud!!

Finally our cloud, matrix, is up and running, so now I can begin to add images onto it. The steps for adding images onto the cloud are found on the eucalyptus website, at http://open.eucalyptus.com/wiki/EucalyptusImageManagement_v2.0. I gave it a test but encounter a bug in the eucalyptus 1.3.1 version (this is the latest stable version as stated on the website, but there is a newer version, 1.3.2, on github, and I will test it out later to see if the bug is fixed), where the compiler stated that it couldn’t import one of the module when I tried to use euca-upload-bundle. So I searched for that file, correct the importation, and re-installed the eucalyptus. And that fixed the bug.

Now with that bug fixed, the adding ran smoothly and I got a kernel-image, a VM image, and a ramdisk image up on the cloud. But unfortunately, the instance couldn’t be ran. And I believe this is where eutester comes into play, I will be using it to test out our instance.

Overall, this was a valuable experience for me because I actually figured out and have a bug fixed. It makes me have a lot more confidence in what i’m doing.

From the blog longnguyen16 » wsu-cs by watever10 and used with permission of the author. All other rights reserved by the author.

Python and Euca2ools

Since Eucalyptus is coded in python, I spend the past week going through online tutorials and learning more about how to code in python. In comparison to any programming languages I have used before, the syntax is very straight forward and easy to comprehend and learn. It may be that python isn’t by far the first programming language that I have learned, or that it is just an easy to learn language in general. Im going to continue with the tutorials I have been using and hopefully understand most of what is going on in the Eucalyptus code so I can contribute to commenting it.

In addition to learning python, I also had to redownload and initialize Euca2ools on my new laptop. This time was actually much more successful than the first time I attempted doing this. I couldn’t figure out how to download the credentials .zip from our matrix cluster yet, so I tested this process out with the ECC credentials. I was able to initialize, create a key pair, find an image, and create an instance of it. In addition to that I was also able to assign that instance an availible IP, SSH into it, and terminate the instance using euca2ools. I did have to use a few extra commands in order to make the process from our euca2ools wiki page work, which i later added in.

 

This is how you can generate an accessible instance IP:

euca-allocate-address

Associate the allocated address with your VM instance:

euca-associate-address <IP from allocate> -i <instance ID>

Last monday I was put on the task of figuring out how to get multiple people the permissions to receive user requests and approve them. After some research and playing around with our matrix graphical interface I couldn’t figure out how to get multiple users the ability to do that. So as of right now, the only way that I know how to have multiple people receive requests is to give them all access to the email address the requests get sent to. If we wish to have professor Wurst have access to user requests, then we will either have to make a new email address that our “Administrators” can access, or just switch the email address to professor Wurst’s so he will receive them.

Now that I have a better understanding of python and euca2ools, I plan on getting to know more about eutester and how that area of our project works. I also plan on looking at more of the Eucalyptus code to see if I can start commenting parts of it.  But more of that stuff soon enough! I’m looking forward to this coming week and seeing where our next step is as a class.

From the blog clacroix12 by clacroix12 and used with permission of the author. All other rights reserved by the author.

Learning Eutester

So since euca2ools did not have enough work for me to continue at it for the rest of the semester, I decided I ll simply jump on our main project the Eutester project. It has been a good day so far, most things went well I heard some people had problems with version mismatches so I downloaded and installed everything from source code their most up-to-date versions of “all the things” (boto/m2crypto/paramiko/eutester). Reading through the wiki that the eutester group of guys has set up on cs.worcester.edu, and following  some links to blogg posts from the developers, I managed to run some tests on our newly installed Eucalyptus 3 cloud which is still not able to keep a VM instance running.

>>> eucaops.get_emi()
Image:emi-238B37D9
>>> emi = eucaops.get_emi()
>>> reservations = eucaops.run_instance(emi)
Attempting to run instance-store image Image:emi-238B37D9 in group default
Beginning poll loop for the 1 found in Reservation:r-860340D3
Beginning poll loop for instance Instance:i-0696428B to go to running
Instance(i-0696428B) State(pending), sleeping 10s
Instance(i-0696428B) State(pending), sleeping 10s
Instance(i-0696428B) State(pending), sleeping 10s
Instance(i-0696428B) State(pending), sleeping 10s
Instance(i-0696428B) State(pending), sleeping 10s
Instance(i-0696428B) State(terminated) Poll(5) time elapsed (51)
[CRITICAL]: [TEST_REPORT] FAILED: Instance:i-0696428B did not enter the proper state and was left in terminated

 

After some looking around found out about the existence of nc.log file, and here is the portion of the fail runs:

[EUCAFATAL] Failed to connect to qemu:///system
[i-16F93EC9] could not contact the hypervisor, abandoning the instance
[i-16F93EC9] state change for instance: Staging -> Shutoff (Pending)
doDescribeResource: cores=1/2 mem=1604/1732 disk=11/13 iqn=iqn.1994-05.com.redhat:262aa1ddbe2
[i-16F93EC9] Pending pub=0.0.0.0 priv=0.0.0.0 mac=d0:0d:16:F9:3E:C9 vlan=-24 net=-1 plat=linux vols=
[EUCAFATAL ] Failed to connect to qemu:///system
[i-16F93EC9] cleaning up state for instance
[i-16F93EC9] stopping the network (vlan=-24)
[EUCAWARN  ] vnetStopNetworkManaged(): supplied vlan '-24' is out of range (0 - 4096), nothing to do
[i-16F93EC9] state change for instance: Shutoff -> Teardown (Teardown)
[EUCAFATAL ] Failed to connect to qemu:///system

After trying to work my way through an old bug report and fix on the above problem, I decided I should check if Hardware Virtualization, which turned out it was the right idea, because in this case it is turned off in the BIOS.

From the blog Live and Code » WSU CS by dhimitraq and used with permission of the author. All other rights reserved by the author.

Working with Euca2ools

The past two weeks I have been working on documenting Euca2ools with Dhmitri and Chris. Euca2ools is a collection of Linux command-line tools for interacting with a Eucalyptus cloud. There is documentation on the Eucalyptus website on how to get Euca2ools installed and working but it can be a confusing process, especially if you aren’t extremely familiar with the Linux command line, like I am. Dhmitri did a great job of consolidating all of the steps required and posting them on our wiki. He also added a few steps of his own that may not be apparent to a Linux novice. I followed his steps and was able to get a working Euca2ools installation after a fair amount of trial and error.

Based on my experiences, I expanded on Dhmitri’s instructions and tried to add more explanation of what you are actually doing with Euca2ools and why. I also added some nice color formatting to try and spice up the page and make it easier to follow. Check it out here: http://cstest.worcester.edu/wiki/pmwiki.php?n=Main.Euca2ools

As of right now the page is not finished– for some reason I am blocked from making further edits to the page! I wonder if it is because I made too many edits in a short time and the page is locked. Hopefully this gets resolved soon and I can make the remaining planned changes to the page.

From the blog Code Your Enthusiasm » WSU CS by Jon and used with permission of the author. All other rights reserved by the author.