Golive: A simple deployment tool

I’ve heard that the best way to learn a new programming language is to create a proper project in it. golive is my “Learn Golang”-project. It is a simple deployment tool that listens to webhook requests from git repository providers such as Bitbucket and Github. If the pushed repository and branch matches something in the configuration file, corresponding jobs run.

Read more…

Ansible, Rackspace and Idempotence

I was recently tasked with transitioning a server setup from the medieval times of “we can’t get in contact with the server-guy, but here are some vague instructions that are probably outdated” to the modern times of “automate all the things!” Trying to make sure the process was fully codified and idempotent, I ran into some snags here and there. This is a documentation of those snags, both for a future me, but also for others, should they struggle with the same things. As the title says, it is focused on Ansible, its integration with Rackspace and how to keep the playbook idempotent – that is, how to make sure that running the playbook has no effect if no changes has been made to it.

Read more…