Hi all

As some of you may know, I have been working for some time on a project called 
Trillian. This started out as an internal project at $dayjob with the 
intentions of being able to quickly build environments to:


a)       Test new feature software builds (manually and via Marvin)

b)      Test community releases (manually and via Marvin)

c)       Replicate failure scenarios

d)      Evaluate new features

To meet these and a number of other requirements I started Trillian.  At 
Trillian's core are Ansible, CloudStack and vSphere virtualisation. Ansible 
takes a command line input and requests VM instances from CloudStack and then 
configures all of the hypervisor hosts and mgmt. servers, finally creating a 
zone which incorporates all of the components which were requested.

The environments are built in projects and the accounts which are allowed 
access are specified on the commandline.

The commandline arguments look like this:

--extra-vars "env_name=myACSenv env_version=cs45 hvtype=x hv=2 xs_ver=xs65sp1 
env_accounts=all pri=1  mgmt_os=6"

There is a global file which holds the mapping of ACS version to relevant URLs 
or OS types to specific templates, however EVERY mapping can be overridden from 
commandline.

--extra-vars  "env_name=cs49-vmw55-pga env_version=cs49 mgmt_os=6 hvtype=v 
vmware_ver=55u3 hv=2 pri=2 env_accounts=all build_marvin=yes 
baseurl_cloudstack=http://10.2.0.4/shapeblue/cloudstack/testing/ 
mgmtsrv_template=Testc6Template"

CloudStack deploys the virtualised hypervisor hosts and mgmt. servers as and 
when required - CloudStack mgmt. server, MySQL hosts Marvin host, vCenter 
server) onto the ESXi hosts.

The output from each request is a bespoke, fully working virtualised CloudStack 
environment.



The reason trillion came about in its current form is that at $dayjob we have 
to deal with lots of different types of environment, hypervisors and 
configurations.
I know others have put a lot of work into similar tools, which I've used over 
the years and found useful but I needed some tooling that could also support 
vSphere hosts and Hyper-V and also be easy to connect to external integration 
points such as SolidFire storage, NetScalers, Cloudian S3 installations etc. as 
well as supporting multi-tenancy.

For some time, it's been my intention to make this open source and generally 
available for this community. While I could have done this sooner but I held 
back a little as I wanted to make sure that it was well documented and could be 
easily deployed for a wide range of use-cases

I'm happy to say I  think we're just about there.
Trillion is now available:
https://github.com/shapeblue/Trillian

Please feel free to use, comment, find bugs or come up with any ideas on how we 
can make this better.
Rohit has integrated this with Jenkins and will be sharing how he has done this 
soon too.


If people think this is useful for the community, I've got clearance from 
$dayjob to donate the work into ACS (if we want it).



Marvin: "I think you ought to know I'm feeling very depressed."
Trillian: "Well, we have something that may take your mind off it."
Marvin: "It won't work, I have an exceptionally large mind."



Kind regards,

Paul Angus


paul.an...@shapeblue.comĀ 
www.shapeblue.com
53 Chandos Place, Covent Garden, London  WC2N 4HSUK
@shapeblue
  
 

Reply via email to