Raspberry Pi Dramble
NOTE: This project is currently being converted to use Kubernetes as the foundational layer of the Drupal site infrastructure. Please check out the
kubernetesbranch and see its README for more info.
A cluster (Bramble) of Raspberry Pis on which Drupal will be deployed using Ansible.
Read the rest of this README and the official Dramble Wiki for more information about the Dramble.
I'm doing presentations on Ansible, and how easy it makes infrastructure configuration, even for high-performance/high-availability Drupal sites. WiFi/Internet access is spotty at most conferences, so deploying to AWS, DigitalOcean, or other live public cloud instances that require a stable Internet connection is a Bad Idea™.
Deploying to VMs on my own presentation laptop is an option (and I've done this in the past), but it's not quite as impactful as deploying to real, live, 'in-the-flesh' servers. Especially if you can say you're carrying around a datacenter in your bag!
A cluster of servers, in my hand, at the presentation. With blinking LEDs!
You can browse more information about geerlingguy's Dramble on http://www.pidramble.com/. This website is actually running on the Rasbperry Pi Dramble cluster pictured above!
- 24 ARMv7 CPU Cores
- 5.4 GHz combined compute power
- 6 GB RAM
- 96 GB microSD flash-based storage
- 1 Gbps private network
Getting the Pis (and other accessories)
Many people have asked for a basic list of components used in constructing the Dramble, or where I found particular parts. In the Wiki, I've added pages listing the following:
Setting up the Pis
The process for setting up all the Raspberry Pis is outlined in the Wiki:
- Prepare the Raspberry Pis for provisioning
- Rack the Raspberry Pis
- Network the Raspberry Pis
- Test the Ansible configuration
- Provision the Raspberry Pis
- Deploy Drupal to the Raspberry Pis
Benchmarks - Testing the performance of the Dramble
See the Pi Dramble Benchmarks section of the Wiki for current benchmarks and statistics.
Drupal on a Single Pi - Drupal Pi
If you have only a single Raspberry Pi, you can use the Drupal Pi project to quickly get Drupal running on the single Pi.
Using Raspberry Pi B+ or Pi Zero
The Raspberry Pi 2 and 3 both have quad-core processors that make certain operations four to ten times faster than single-core Pis like the A+, B+, Zero, etc. Additionally, a typical web application needs as much RAM as possible, and any Pi without at least 512 MB of RAM is woefully underpowered for the Drupal LEMP stack.
It's not recommended—but it is possible—to build your cluster with Raspberry Pi model B+ or Zeros (both have 512 MB of RAM), and you only need to make a couple small changes to
config.yml before running the main Ansible playbook:
config.yml, comment out the two MySQL settings with comments
# For 1GB RAM., and uncomment the two MySQL settings with
# For 512MB RAM..