The last week or so I have spent all of my time outside of class and work finishing up classes for the semester, and cs401 was no different. Between getting slides together for our presentations and finishing up my ethical analysis of the Eucalyptus project, combined with all of my other classes, it has been a busy week.
Today during class Dave, Mike, and myself took a trip over to the server room to flatten the network. Once we had that accomplished, we sat down and and configured two more nodes and edited the Eucalyptus Installation documentation accordingly. To be honest, it was very easy to do following the documentation that Dave had on the Wiki, even if most of it wasn’t necessary anymore due to there being packages we could install instead of having to compile from source. Hopefully some other people can go through the guide and get the rest of the nodes up and running.
Overall I think I learned a lot in this class over the course of the semester. I learned about version control and coding in a team environment, cloud infrastructure and how it all comes together, and a lot of python. All of which I can safely assume will make great additions to my resume. That being said, I’m looking forward to seeing everyone’s presentations next week and seeing how much we have accomplished as a class.
So today I was doing some more documentation on the eutester repo. Everything was going fine until I went to push my changes to the repo. To my surprise, I received a conflict. Confused, i went to the github page to see if anyone had made changes to the file i was commenting. Sure enough, Marcos had made some additions to the comments. I tried to figure out how to fix the conflicts manually in my code but finally just decided to do a fresh clone of the repo and remove my old one. I normally do pulls before I get started on changing anything, I guess I just forgot to today and ran into a conflict because of it. At least I learned a little more about git due to this mistake, which is always good!
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.
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:
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.
This week was a bit more product for myself. The installation of eucalyptus seems to be coming along nicely and should be complete very soon! Due to some technical difficulties with our CLC Neo, we had to make some minor changes to our cluster network map and use Morpheus as a replacement(at least for the time being).
I was able to help out the installation process by doing some work on one of the nodes, “dozer.” Firstly, I had to copy the installation over to the node from Morpheus. This would have been a much easier task if we had realised that root login wasn’t enabled on the dozer node. After figuring that out, the install was copied over just fine.
From that point I downloaded and installed all of the dependencies for eucalyptus, which were a few repositories and quite an extensive list of packages. Once these were on the node, I created a eucalyptus user since the software expects one, registered eucalyptus-cloud, -cc, and -nc startup scripts so that the “service” command will work for them, and initialised postgreSQL. All of the system commands that I used for this were provided by Dave’s documentation on the wiki.
Once we determine that the installation on Dozer worked as intended, I will go through the rest of the nodes and complete the installation on those as well. For now we will wait to see if it was done correctly before proceeding with the other nodes so we do not have to fix mistakes on five machines instead of one or two.
I plan on making a more detailed and accurate network map for our cluster. That should come in handy when identifying each individual server in the cluster and knowing what they actually do.However, I’m waiting to see what we decide to do with Neo before I do this. Other than that, hopefully we will have the cluster installation up and running this coming week. That’s assuming we don’t run into any more serious setbacks(like our CLC overheating).
Personally, this was a slow week for myself. In class we discussed all of the topics for eucalyptus that we needed to get people working on. We arranged the topics, and with the help of etherpad, had people “sign up” for whatever area of eucalyptus they wanted to work on. I chose to be a part of the eucalyptus install team with Dave and Mike. The networking aspect of things tends to interest me a great deal so I wish to work on that skill as much as I can.
I communicated a little bit with Dave throughout the week, and according to the massive amount of documentation he wrote up, it seems like he is making a lot of progress. As far as my end on the install however, I wasn’t able to get much work done this week. I did take a more in depth look at the user and administrator documentation on the eucalyptus website so I would have a better idea as to what was ahead of us. This coming week I plan on getting a lot more work done on the installs, namely getting some of the node controllers working. We are aiming to have this thing up and running as soon as possible!
Now that we have the cluster setup and ready for Eucalyptus installs, I have been anxious to help out and get this part of the project closer to completion. After seeing that there is now some documentation available for Eucalyptus installs, I quickly took a look at that to see what we were up against. It was a very long and detailed document which could mean two things: they did a good job at documenting it and we shouldn’t have too many problems, or it is a very complicated process and we’re going to hit some speed bumps(most likely the latter).
As far as helping out with the installs goes, I was able to SSH into the cluster controller(morpheus) and all of the nodes in the cluster and do some work. The firewalls were disabled on all of these machines in order to give us less of a headache with configuring ports for each of them individually. Selinux was also disabled because it isn’t compatible with Eucalyptus.
Overall, we are definitely making some progress with the installation of Eucalyptus on our cluster, I’m pretty excited to see where this goes and how our class works together to manage this project. After talking to Dave, I think the Eucalyptus installation will be more of a headache than we originally thought. It shouldn’t be anything that our class can’t handle though!