With just two classes left to the semester, I would rate our class as moderately sucsessful. This in no way reflects the effort that went into setting up our cloud or creating our wiki entries. I believe everyone who contributed did a tremendous job, especially on the server side of things. Some things are just beyond our control, which does not make it any less frustrating. At present it appears our last roadblock is getting the cloud to assign accessiable IPs that communicate between each other.
I reviewed our wiki, with an eye towards what is left to complete. At present it seems all that is left is formatting (Architectue Overview needs color backgrounds added to code segments), and legacy posts added to a seperate page – I suggest this so that those that come after can have a better understanding of the process.
The project we undertook was ambitious – set up a functioning cloud with the latest release of the Eucalyptus and leverage that to write testing scripts which could be added to the KB. But I do not feel we failed because we did not meet our goals. Our class created an easy to follow wiki outlining the use of a Eucalyptus cloud and the tools needed to interact with it. Most recently, work was done to make the scripts already available in the Eutester easier to read and follow.
I attended a EucaSchool planning meeting, where I suggested that future classes be captured on video. This would allow those unable to attend to get the full impact of the class and should obviate the need to redo basic topics. The idea was well received (it seems this had been suggested before, but no follow up was done).
Going forward, I would suggest that the Cloud be maintained as it could be a valuable resource for future CS students. Either for the next CS-401 class or for other CS classes.
Currently working on the wsu wiki. I have added a new topic entitled Eutester User Guide. Rather than edit the current page for Eutester, I think adding a new topic done in the same style as Euca2ools User Guide will be more efficient and will avoid getting in the way of other projects using the same page. A huge thank you to viglesiasce, from whom most of this material is sourced.
Rather than just link to the various blog posts, I decided that a wiki format best serves our class’ purpose, and obviously allows for quick editing. Note: please feel free to add any useful comments or clarifications. The purpose of the wiki in my mind is to allow someone not familiar with any of the programs and languages (but with some programming background), to quickly become efficient in their uses.
Progress is being made with our class’ cluster. Hopefully we will soon be able to add images to it, which will allow us to progress a bit futher in using the Eutester program. For my part, I have been trying to figure out why I could not ssh into any of the instances started from a Ecalyptus image.
This was a vexing issue, made more so because others in the class were able to make it work. I ended up installing Euca2ools onto 3 different computers in order to compare the results I got on each. The problem came down to not being authorized to establish an ssh connection to an instance I had started. I tried multiple times deleting and adding keypairs, and combing through the available images, thinking that somehow it was the images fault I could not establish a connection.
I finally had the choice to add an instances public key to a known_hosts file in the .ssh folder (I assumed I was doing everything up to this point correctly), but still received an error and no connection was made. On a whim, I went into the .ssh folder and deleted the files I found there. My next attempt was successful.
Contemplating why this would occur, I realized that the IP address used for each session remained the same, no matter if multiple instances had been created, either from the same or different images. The problem was that ssh was uncomfortable with this and so refused to connect.
I performed an experiment, to see if I could duplicate this error. I established ssh connections to 2 different instances of 2 different images. I then terminated those instance and restarted them in reverse order. This established those instances with different IP addresses. I then attempted to ssh into the instances and got errors stating that the host keys had changed. I feel as if this error should have been caught a while ago, but my ignorance of using ssh got in the way.
Fortunately, I can now start an instance at will and can resume becoming familiar with Eutester, with the goal of using and modifying this tool.
This is a trial and error process, with a strong emphasis on error. I’ve never used Python before, so I find myself jumping to Google search quite a bit. Anyway, the first problem I encountered was starting a Python terminal, which turns out to be as easy as typing Python into an open terminal. You’ll see ‘>>>’ to indicate Python is available. The next problem was that I had not built Eutester correctly, turns out I needed to give root permission to do this. Finally, I had a working version of Eutester and a Python terminal, but when I tried to run the command ‘from eucaops import Eucaops’ I got an error which seemed to indicate that Boto (the Python interface to EC2) is not working.
It seems I cannot create a connection to the Eucalyptus cloud. I’ll edit this post after I figure out what’s happening.
Well, it seems there is a problem on the server end. I talked with someone on #eucalyptus and created a forum post. Hopefully this issue gets resolved quickly.
Images are again available, and I am resuming my quest to get Eutester to work for me. My first roadblock this morning is that when trying to import eucaops I get an error telling me that a paticular class cannot be imported (BlockDeviceType). A quick search of the file shows that this class was renamed to EBSBlockDeviceType. This error was caused by the simple fact that my version of Boto was out-of-date. I downloaded and installed the latest version(Boto 2.2.2).
The next problem encountered has to do with credentials. Essentially I need a credentials directory which contains a eucarc file from which key information can be extracted. I resolved this be finding my eucarc file and copy pasting the path name. I have been able to follow the the test listed here up until the ping test. Despite several tries to authorize the group – default – I am unable to ping the instance.
This assignment has been frustrating, to say the least, but I feel I have a much better understanding of the process involved. I will be updating the Wiki soon, so hopefully anyone else will be able to get eutester running in short order.
We are moving forward with the Eucalyptus project. Our cluster is set, and the initial components of the Eucalyptus Cloud are in place. Our contribution to this project will be on improving a piece of test-software appropriately named Eutester. Written 100% in Python (note to self: learn Python), the program is intended to be run like a command-line script to test a running cloud.
Our project for the week included a couple articles to read, one on building executable code from the source code, and the other articles was “Stuff everyone knows and forgets anyway”, a basic reminder to keep everything out in the open, ect.
In today’s class we explored the use of Git, which is a program used for version control. Git allows users to clone existing source code from a repository, make changes to the code (whether adding new files or changing existing ones), and to move those changes back into the repository. The program helps coordinate changes between users, so that a file changed by multiple users is not simply overwritten by the latest user to make a change. We performed a simply exercise to help learn some of the commands available in Git.
We are also moving forward with our class project, which involves the use of eutester, a program designed to provide a framework to test a Eucalyptus or Amazon cloud. I beleive our goal is to make the program more robust/ user friendly, without changing the core functions. There are several tracked issues listed on the github page, so that might be a great place to start.
In last’s week class we were tasked with downloading and using an IRC client (I’m using Chatzilla for Firefox). The class populated the #teachingopensource channel, and our follow-on task was to use this space to talk back and forth in order to create a wiki page on the teaching open source website for a fellow student.
Using IRC is fairly straightforward. And while there are a number of advanced options, these are unneccesary to use the client.