Fuse Day 4 - DevOps Team utlizing eucalyupts cloud via Jenkins
One of our goals in this Fuse day was utlizing a private cloud and usin it as part of our Build => Deploy => Test scheme.
As a prequisete we have a local setup of Eucalyptus which its setup can be described in a seperate post, In this post we will focus on Jenkins, Jenkins Cloud plugins and Eucalyptus integration, and finally how we tie jobs to instances running on our Eucalyptus cloud.
Setup consists of Jenkis-ci server, Eucalyptus cloud which includes 1 host for CC (Cloud Controller), Walrus, SC (Storage Controller) and a second machine utlizing our NC (Network controller), a third machine was used in order to create a linux (in our case Ubuntu10.10-64bit) which will be launched by Jenkins build server and execute builds on it.
Go over the above check list and make sure we can mnually start an instance on our Eucalyptus cloud.
Install Amazon EC2 Plugin via manage jenkins > manage plugins, reload jenkins in order to activate the plugin.
Step 3 - Confiure Amazon EC2 Plugin via manage Jenkins > configure system like so:
The Access ID and Secret Key can be obtianed from your eucalyptus http://mycloud:8443/#credentials
The EC2 RSA Pricate Key can be genrated directly from hudson's interface, alternativly you can copy and paste an existing one if needed.
Step 4 - configure a Eucalyptus node (Instance):
4.1 Via manage jenkins > manage plugins,
obtain the EMI (AMI is for Amazon Managed Image whilst EMI stand for Eucalyptus Managed Image) via http://mycloud:8443/#images (see screen-shot below)
4.2 Set instance type which is the equicalent to the m1.small, c1.medium, m1.large, m1.xlarge, c1.xlarge which is listed in http://mycloud:8443/#conf
4.3 Remote Root FS - the firectory dedicated for Jenkins to use in order to utlize the Jenkins slave instance
4.4 Remote user - for a default eucalyptus image you would use admin
4.5 Label - this is the label you will use in order to tie your job to this node.
Step 5 - Tie hudson Job to the Eucalyptus EMI (Instance):
in the job you wish to tie to the Eucalyptus image just "restrict" it to tha machine like so:
And there you have it the next build will be excuted on your brand new Eucalyptus instace.
Supprisingly the work around installing Eucalyptus and creating custom images was much longer than expected.
The next step we will be follwing up is creating pre-defined images linux & windows 32/64 bit with predefined OS versions and types an creating the equivalent Jeknins configuations combined with the Jenkins-multi-configuration plugin which is being developed by the rest of the ALM team members.