Posts

Showing posts with the label vagrant

A not so short guide to TDD SaltStack formulas

One of the hardest parts about Infrastructure As Code and  Configuration Management is establishing a discipline on developing, testing and deploying changes. Developers follow established practices and tools have been built and perfected over the last decade and a half. On the other hand sysadmins and ops people do not have the same tooling and culture because estensive automation has only become a trend recently. So if Infrastructure As Code allows you to version the infrastructure your code runs on, what good is it if then there are no tools or established practices to follow? Luckily the situation is changing and in this post I'm outlining a methodology for test driven development of SaltStack Formulas . The idea is that with a single command you can run your formula against a matrix of platforms (operating systems) and suites (or configurations). Each cell of the matrix will be tested and the result is a build failure or success much alike to what every half-decent de...

Testing provisioning scripts with throw-away VMs

Image
Using expendable virtual machines for testing purposes is hardly a new concept. Now  pretty-please-with-sugar-on-top would be automating the whole create-provision-test-destroy cycle. Enter  Vagrant . Vagrant is a tool for building and distributing virtualized development environments. It allows automated creation, provisioning (with Puppet, Chef or shell scripts) and tear down. Installing Vagrant on Ubuntu 10.04 LTS (which I'm still running) requires the following: a 4.1.x VirtualBox distribution (the 3.1 bundled with Ubuntu will not work) a recent version of ruby (you guessed it: the 1.8.x bundled with Ubuntu will not work) To install VirtualBox add the following repo to /etc/apt/sources.list: deb http://download.virtualbox.org/virtualbox/debian lucid contrib non-free then issue the usual apt-get update and install with (remove stock packages first): sudo apt-get update sudo apt-get remove virtualbox-ose virtualbox-ose-dkms sudo apt-get install ...