Open main menu

CDOT Wiki β

Changes

Buildbot and EC2

1,004 bytes added, 18:33, 12 October 2007
no edit summary
=== Release 0.1 ===
'''==== Goals:'''====
* Add in a new build step to Buildbot
* Allow Buildbot to connect with Amazon's EC2 service
==== Downloads ====
Basically, the first thing that needs to be done is add a new step to Buildbot's build process    [http://matrix. Once a new step has been added, the next step is to make this new build step access my EC2 accountsenecac. on.ca/~awdelyea/EC2_build_step_nokeys.py EC2_build_step_nokeys.py]
After I can actually access my EC2 account through Buildbot, then a possible next step would be     Note: You will need to make Buildbot check to see if I have any open Virtual Instances running already (no point in starting another instance if ones running already)install the boto library located [http://boto.googlecode.com/files/boto-0.9a.tar.gz here].
One thing that may need to be kept in mind is that Amazon charges 10 cents per hour, or part of an hour, per instance. So, each time you start a new instance, it costs 10 cents. The best way I can think of doing this is make each instance you start, last for at least an hour, so that if you start another build in 10 mins, you can continue to use the same instance instead of starting a new one.
For ==== About ==== Basically, this, Buildbot would need to run a service on the OS first version attempts to constantly check connect to see if an instance is approaching EC2 account, and then display the 1 hour markconnection information to show that it has connected. It uses a library called "boto", and not running any build slavesthis library is used to connect to all of [http://www.amazon.com/gp/browse. Not quite sure how Ihtml?node=3435361 Amazon'd do thats Web Services] To use this in a Buildbot configuration file, simply call the connect_to_ec2() function, but it's something to keep which takes in mindas paramaters, an Amazon id key, and an Amazon secret keyExample:<pre> connection = connect_to_ec2("73ghf9h38fh", "75vo87rVO*&V%O7o75v7i%i75I&5li7%i75")</pre> ---- 
=== Release 0.2 ===
 
==== Goals ====
 
* Start New Instances
* Add new instances to build slave list
* Start a build on an EC2 instance build slave
 
==== Downloads ====
 
==== About ====
----
 
=== Release 0.3 ===
 
==== Goals ====
 
==== Downloads ====
 
==== About ====
== Tasks ==
<table style="width: 100%;" class="standard-table" cellborder=1 border=1 cellpadding=2 cellspacing=0>
<th style="width: 15%;background-color:grey">Task</th> <th style="width: 10%; background-color:grey">Details</th> <th style="width: 10%; background-color:grey; font-color:white">Priority</th> <th style="width: 10%; background-color:grey; font-color:white">Contributors</th> <th style="width: 10%; background-color:grey; font-color:white">Status</th> <th style="width: 10%; background-color:grey; font-color:white">Link(s)</th>
<tr>
<td>Define new build step</td>
<td>Add a new build step to the build master config file. The build step will be in an external file and imported into the build master config file.</td>
<td style="background-color: redgreen; text-align: center; font-weight: bold; font-size: bigger">HighDone</td>
<td>Adam Delyea</td>
<td>In Progress, On Track&nbsp;</td>
<td>[http://buildbot.net/repos/release/docs/buildbot.html#Writing-New-BuildSteps Writing New Build Steps]</td>
</tr>
<td>Connect To EC2 using Python</td>
<td>Utilize the EC2 python library to connect to an account on the EC2 network. Once connected, display some information about the users account to prove it's actually connecting.</td>
<td style="background-color: redgreen; text-align: center; font-weight: bold; font-size: bigger">HighDone</td> <td>Adam Delyea</td> <td>&nbsp;</td> <td><ul><li>[http://code.google.com/p/boto/ Boto Amazon Web Services Library in Python]</li><li>[http://jimmyg.org/2007/09/01/amazon-ec2-for-people-who-prefer-debian-and-python-over-fedora-and-java/ Amazon-ec2-for-people-who-prefer-debian-and-python-over-fedora-and-java]</li></ul></td> </tr>  <tr> <td>Start new instances</td> <td>Allow Buildbot to spawn an instance on demand.</td> <td style="background-color: yellow; text-align: center; font-weight: bold; font-size: bigger">Medium</td> <td>Adam Delyea</td> <td>In Progress, On Track</td> <td>&nbsp;</td> </tr>  <tr> <td>Add new instances to build slave list</td> <td>Allow newly created EC2 instances to be added to the build slave list</td> <td style="background-color: yellow; text-align: center; font-weight: bold; font-size: bigger">Medium</td> <td>Adam Delyea</td> <td>In Progress, On Track</td> <td>&nbsp;</td> </tr> <tr> <td>Start a new build on an EC2 instance</td> <td>Allow Buildbot to successfully start a build using a build slave on an EC2 instance</td> <td style="background-color: yellow; text-align: center; font-weight: bold; font-size: bigger">Medium</td>
<td>Adam Delyea</td>
<td>In Progress, On Track</td>
<td><ul><li>[http://code.google.com/p/boto/ Boto Amazon Web Services Library in Python]</li><li>[http://jimmyg.org/2007/09/01/amazon-ec2-for-people-who-prefer-debian-and-python-over-fedora-and-java/ Amazon-ec2-for-people-who-prefer-debian-and-python-over-fedora-and-java]</li></ul>&nbsp;</td>
</tr>
</table>
2007-10-11: Found a python EC2 library that has all of the functions I will need for interacting with EC2. Just need to write a custom build step to run these library functions.
 
2007-10-12: Release v0.1 is complete and available for download.
 
2007-10-12: Release v0.2 loosely defined. More detail to follow.
1
edit