You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cloudstack.apache.org by Paul Angus <pa...@shapeblue.com> on 2016/07/07 10:29:03 UTC

FW: Trillian.

Please excuse cross posting, but this may be interesting to users and developers


Kind regards,

Paul Angus

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


-----Original Message-----
From: Paul Angus [mailto:paul.angus@shapeblue.com] 
Sent: 07 July 2016 10:53
To: dev@cloudstack.apache.org
Subject: Trillian.

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.angus@shapeblue.com
www.shapeblue.com
53 Chandos Place, Covent Garden, London  WC2N 4HSUK @shapeblue