Releng – The Plan

The plan

Everyone loves it when a plan comes together so here’s the general approach to setting up the system:

All the configuration files and Puppet Manifests are stored in a git repository
Changes are made and then committed to the repository before being “pushed” to the CI server
The CI Server (Jenkins in our case) runs a series of tests on the manifests and configuration files
If the tests fail, the build breaks and notifications are sent via Jabber, Email or even a large robotic rabbit…
If the builds pass, the manifests and config files are deployed to the Puppetmaster by Capistrano
A puppet run is forced across all servers using MCollective


Continuous Delivery : A Mini Hurdle

The first hurdle to overcome with Continuous Delivery I think is not getting your product’s code onto the machine itself, but managing the actual machine and it’s software… and in talking to people. It is the subtle nuances between machines due to people tweaking things on the fly that lead to the worst [most annoying] bugs to troubleshoot.
The end-goal of managing your machines is that no one ever logs into the machine directly.