All Projects → geerlingguy → Raspberry Pi Dramble

geerlingguy / Raspberry Pi Dramble

Licence: mit
Raspberry Pi Kubernetes cluster that runs HA/HP Drupal 8

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Raspberry Pi Dramble

Awx Ha Instancegroup
Build AWX clustering on Docker Standalone Installation
Stars: ✭ 106 (-91.95%)
Mutual labels:  automation, ansible, devops, cluster
Hashi Up
bootstrap HashiCorp Consul, Nomad, or Vault over SSH < 1 minute
Stars: ✭ 113 (-91.42%)
Mutual labels:  automation, raspberry-pi, devops
Devshop
Open Source DevOps Framework
Stars: ✭ 161 (-87.78%)
Mutual labels:  ansible, drupal, devops
Ansible Raspi Playbooks
Playbooks for setup and updating of raspberry pi projects.
Stars: ✭ 162 (-87.7%)
Mutual labels:  automation, ansible, raspberry-pi
Netbox As Ansible Inventory
Ansible dynamic inventory script for Netbox.
Stars: ✭ 161 (-87.78%)
Mutual labels:  automation, ansible, devops
Ansible Rpi K8s Cluster
Deploy Raspberry Pi Kubernetes cluster using Ansible
Stars: ✭ 131 (-90.05%)
Mutual labels:  ansible, raspberry-pi, cluster
Azure
Azure-related repository
Stars: ✭ 78 (-94.08%)
Mutual labels:  automation, ansible, devops
Ansible For Kubernetes
Ansible and Kubernetes examples from Ansible for Kubernetes Book
Stars: ✭ 389 (-70.46%)
Mutual labels:  automation, ansible, devops
K3sup
bootstrap Kubernetes with k3s over SSH < 1 min 🚀
Stars: ✭ 4,012 (+204.63%)
Mutual labels:  automation, raspberry-pi, devops
Ansipress
AnsiPress - Simple L(Linux) E(NGINX) M(MariaDB) P(PHP7) Shared Hosting Setup
Stars: ✭ 184 (-86.03%)
Mutual labels:  automation, ansible, drupal
Dellemc Openmanage Ansible Modules
Dell EMC OpenManage Ansible Modules
Stars: ✭ 169 (-87.17%)
Mutual labels:  automation, ansible, devops
Guide
Kubernetes clusters for the hobbyist.
Stars: ✭ 5,150 (+291.04%)
Mutual labels:  automation, devops, cluster
Rundeck
Enable Self-Service Operations: Give specific users access to your existing tools, services, and scripts
Stars: ✭ 4,426 (+236.07%)
Mutual labels:  automation, ansible, devops
Docker Swarm
🐳🐳🐳 This repository is part of a blog series on Docker Swarm example using VirtualBox, OVH Openstack, Azure and Amazon Web Services AWS
Stars: ✭ 43 (-96.74%)
Mutual labels:  automation, devops, cluster
Ansible Interactive Tutorial
Interactive Ansible tutorials with dead simple setup via Docker
Stars: ✭ 1,309 (-0.61%)
Mutual labels:  ansible, devops
Ansible For Network Engineers
Репозиторий книги "Ansible для сетевых инженеров". Книга в процессе переноса на readthedocs и обновления содержания на Ansible 2.9!
Stars: ✭ 74 (-94.38%)
Mutual labels:  automation, ansible
Memento
Fairly basic redis-like hashmap implementation on top of a epoll TCP server.
Stars: ✭ 74 (-94.38%)
Mutual labels:  distributed, cluster
Tortipi
Tor based Raspberry π hotspot
Stars: ✭ 76 (-94.23%)
Mutual labels:  automation, raspberry-pi
Cisco ios
Ansible Network Cisco IOS Provider Role
Stars: ✭ 72 (-94.53%)
Mutual labels:  automation, ansible
Portable Ansible
Ansible without requirements to be installed (for pull-mode)
Stars: ✭ 75 (-94.31%)
Mutual labels:  ansible, devops

Raspberry Pi Dramble

Build Status

A cluster (Bramble) of Raspberry Pis on which Drupal is deployed using Ansible and Kubernetes.

Raspberry Pi Dramble - Hero Image

Read the rest of this README and the official Pi Dramble Wiki for more information about the Dramble.

Why

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™.

I'm also presenting on Kubernetes, and how easy it is to have self-healing, almost-infinitely-scalable infrastructure (managed with Ansible), and it's more fun to build with Kubernetes on bare metal... at least when the RAM on the Kubernetes master isn't all eaten up!

But really, it's just plain awesome. How many people can say they carry their entire datacenter in a travel bag, and can run it from a USB battery pack?

A cluster of servers, in my hand, at the presentation. With blinking LEDs!

Official Site

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!

Specs

  • 16+ ARMv7 CPU Cores
  • 5.6 GHz combined compute power
  • 4 GB RAM
  • 128 GB microSD flash-based storage
  • 1 Gbps private network with PoE

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:

  1. Prepare the Raspberry Pis for provisioning
  2. Rack the Raspberry Pis
  3. Network the Raspberry Pis
  4. Test the Ansible configuration
  5. Provision the Raspberry Pis
  6. Deploy Drupal to the Raspberry Pis

It is recommended you use the 64-bit version of Raspberry Pi OS, as some of this project's dependencies require it (and may not install on 32-bit Pi OS).

Adding more nodes

You can add more than four nodes, if you desire; add additional hosts in the same sequence in the following files:

  • setup/networking/inventory
  • setup/networking/vars.yml
  • inventory

If you need to change the IP subnet (default is 10.0.100.x), make sure to also update hosts.j2 to use the new subnet so hostnames resolve correctly.

Private Docker Registry Usage

The Pi Dramble includes a built-in Docker registry that is used to host Drupal images for deployment to Kubernetes. To use the Docker registry manually (to push or pull images):

  1. Edit your /etc/hosts file and add the line:

    10.0.100.62  registry.pidramble.test
    
  2. Follow the linked directions to get Docker to use your self-signed Docker Registry cert. For macOS, using the GUI: 1. Double-click on k8s-manifests/docker-registry/certs/tls.crt to add it to your Keychain 1. Select the certificate in Keychain Access, choose 'File' > 'Get Info' 1. Expand the 'Trust' section, and choose 'Always Trust' for "When using this certificate:" 1. Close the info dialog and enter your password to save the changes. 1. Restart Docker for Mac.

  3. Tag your image for the registry and push it:

    docker tag my/image:latest registry.pidramble.test/my/image:latest
    docker push registry.pidramble.test/my/image:latest
    

Benchmarks - Testing the performance of the Dramble

See the Pi Dramble Benchmarks section of the Wiki for current benchmarks and statistics.

Local testing

A Vagrantfile is also included for local testing and debugging of the Kubernetes cluster and manifests using Vagrant. See the Vagrant README for more details.

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 older or slower Raspberry Pi models

The Raspberry Pi 2, 3, 3 B+, and 4 have quad-core processors that make certain operations four to ten times faster than single-core Pis like the A+, B+, Zero, etc. Additionally, cluster members need as much RAM as possible, and any Pi without at least 1 GB of RAM simply can't be used as a Kubernetes master.

Therefore only the following Pi models are officially supported:

  • Raspberry Pi model 4 B
  • Raspberry Pi model 3 B+
  • Raspberry Pi model 3 B
  • Raspberry Pi model 2

Presentation Mode

The Raspberry Pi Dramble Kubernetes cluster can function entirely 'air-gapped' from the Internet, and this is in fact how the maintainer uses it in presentations.

See the README in the testing/presentation directory for instructions for operating the cluster standalone.

Author

This project was started in 2015 by Jeff Geerling, author of Ansible for DevOps and Ansible for Kubernetes.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].