For the past few weeks, I've been building a cluster of six Raspberry Pis to test and demonstrate Ansible playbooks for Drupal deployment at upcoming events (like MidCamp and DrupalCon LA).
I added an RGB LED to each of the Raspberry Pis that can be controlled via software (for example, here's a Python script to turn on one individual color on the LED), and as part of the demonstration, I'm using the LEDs to indicate which server Ansible is currently working with.
(See how the LEDs are wired and controlled on the Wiki)
Ansible allows you to run playbooks and tasks (or parts of plays) in many different ways. It's most efficient to run a task or playbook on all the servers at once (with as high a forks
value in your configuration as your workstation or network can support). But it's often helpful to deploy something to one or a small subset of servers, verify it's working, then move on to the next batch (using serial
along with max_fail_percentage
can be very helpful!).
I made a quick demonstration video so you can see how Ansible deploys to servers when using different common serial
/forks
settings:
A lot of the research and testing I'm doing on this cluster of six Raspberry Pi 2 computers (christened the Dramble) is helping improve Ansible for DevOps, a book I'm writing on Ansible. I'll be posting more here and elsewhere on experiences with the Raspberry Pi Dramble cluster in the coming weeks!
For more on using Ansible's forks
, serial
, and max_fail_percentage
, read the documentation: