About two months ago I started playing with Ansible in my “spare” work time. Ansible is an orchestration engine which uses SSH, easy syntax and powerful modules to provide an alternative to the likes of Puppet and Chef. A huge benefit to this approach is that it doesn’t require an agent to be installed on the target system. This is perfect for cloud environments or the orchestration of a large number of disparate systems.
I began with creating a test playbook (my first) which will install a Eucalyptus node controller. I needed to add about 5 NC’s to a deployment and figured it would be nice to automate this. The resulting playbook is here (check branches, its a work in progress). It’s not particularly neat but it works and does the job. The next step here is to re-write and build out a playbook for installing other Eucalyptus components.
More recently, I wanted to deploy the Eucalyptus User Console and Data Warehouse into EC2 and Eucalyptus for testing. To do this I created two new playbooks which deploy these components respectively. They use the Ansible EC2 module which uses local calls via euca2ools to start an instance, the playbook then configures the resulting VM with the Eucalyptus software. Try them out!