Agile DevOps - architecture, technical practices, and culture

Use Cloud and DevOps to build infrastructure by rapid agile iterative development using collaborative open source tools:
-chef cookbooks, puppet modules or ansible playbooks to build servers.
-Test Kitchen to deploy and test them.
-EC2Dream a graphic user interface that provides a 'single pane of glass' to do agile devops primarily on cloud servers.
-Cloud Formation or Terraform using cfndsl Ruby or Troposphere DSL for easy orchestration.
-Amazon AWS, Azure, Google Compute Engine, Softlayer, Openstack, Local and Hosted servers.

Automated Devops with Test-Kitchen, Ansible and AnsibleSpec

This demonstrates using test-kitchen, ansible and busser-ansiblespec to build and verify a tomcat server.

Everything is done via ssh from the Ansible/Serverspec server so Nothing is installed on the tomcat server apart from java and Tomcat.

In this demonstration both servers are Centos 7 running under vagrant and virtual box on your workstation, however the Tomcat server could be anywhere like Amazon EC2, or a Docker Container.

You can take an image of the server after it is build and no configuration software is install on the Tomcat Server.

Workstation Software Installation

The first thing you need to do is install the test-kitchen environment on your workstation.
A useful link is:
The follow instructions are for Windows PC (it will be similar for Mac):

1. Download and install virtualbox from

2. Download and install Vagrant from

3. Download and install the Windows RubyInstaller for 32 bit Ruby 2.1 from
    Check the option to add ruby to your path.

4. Download and install the Windows Ruby DevKit for use with Ruby 2.0 and above (32bits version only) from

5. Configure the Ruby DevKit
    In the devkit directory run “ruby dk.rb init”.
    Check the config.yml generated has added the the path of the ruby install, if not add it manually.
    run “ruby dk.rb install” to bind it to the ruby installation.

6. Then install the following gems
    gem install librarian-ansible
    gem install test-kitchen
    gem install kitchen-ansible
    gem install kitchen-vagrant
    gem install kitchen-verifier-serverspec

7. Install a git client on your workstation and then git clone the repository
and in a command window in the ansible_repo directory run command
    kitchen list
This will return a list if everything is correctly installed.

Create Servers in Virtual Box on your Workstation

1. Review the .kitchen.yml.ssh_vagrant file and rename as .kitchen.yml, specifying IP addresses that are part of your workstation private address space or use DHCP to let the network dynamically allocte IP addresses.

2. To bring servers up using DHCP on your workstation run

    kitchen create ansible-centos-70 -l debug
    kitchen create tomcat-centos-70 -l debug

2. So ansible can access the server get the “private_key” file of the tomcat servers from directory ansible_repo\.kitchen/kitchen-vagrant\kitchen-ansible_repo-tomcat-centos-70\.vagrant\machines\default\virtualbox\private_key
and copy to

3. Update the hosts file with the IP address of the tomcat server.

Build the Tomcat server

    kitchen converge ansible-centos-70 -l debug

Verify the Tomcat server

    kitchen verify ansible-centos-70 -l debug