Infrastructure as code is a staple of the DevOps movement. Often times, this leads to customized solutions that require additional development effort to manage. Testing code driven infrastructure has been difficult across organizations but there are tools that can help. In this session we will walk through concrete examples that illustrate how to test infrastructure using Rspec, Serverspec and KitchenCI. We will illustrate how this testing can tie directly into domain specific meta-data unique to your systems.
We will cover testing infrastructure in a way that is not dependent on your choice of provisioner. Utilizing these skills you can increase your effectiveness by focusing on localized integration testing up to remote node testing. Additionally, the separation of your tests from provisioning code gives you the opportunity to focus on describing the functionality of your systems. This paves the way to allow integration with multiple technologies (puppet, chef, ansible, salt, bash, smoke signals translated to binary) as long as they ultimately achieve the definition of the system.
We will use a Drupal 7 Puppet and Chef provisioned environment to work against.