Raspberry Pi Nodes¶
The Raspberry Pi fleet consists of multiple Raspberry Pi devices that serve as lightweight nodes in the home lab infrastructure. These devices handle dedicated roles including administrative tasks, monitoring and logging aggregation, and testing environments. y
Rack Layout¶
Workstations and Raspberry Pi nodes are organized in a DeskPi RackMate T0, a compact 10-inch rack system. This setup keeps all devices securely mounted and easily accessible.
+-----------------+-----------------+
| runner-04-pi | runner-05-pi |
+-----------------+-----------------+
| runner-06-pi5 | admin-pi |
+-----------------+-----------------+
| Power and HDD |
+-----------------------------------+
| caprica |
+-----------------------------------+
Setup Guide¶
The entire setup of all Raspi nodes is automated using Ansible playbooks. This ensures a consistent, repeatable, and documented process. The playbooks handle everything from installing the necessary software to configuring and starting the services, meaning we can easily redeploy or scale with minimal manual effort.
Ubuntu Server is the operating system of choice for all RasPi Nodes.
Installation and Configuration¶
- Use the RasPi Imager to install Ubuntu Server onto a SD card.
- Set
sebastian
as user and set the default password. - Configure hostname, Wifi settings and enable SSH server with password-based auth.
- Insert the SD card into the Raspberry Pi and power it on.
- Connect to new Raspberry Pi via
ssh sebastian@<THE_HOSTNAME>.fritz.box
from all relevant machines. - Setup password-less ssh connections via
ssh-copy-id sebastian@<THE_HOSTNAME>.fritz.box
from all relevant machines. - Install machine using the Ansible configs from this repo using
task
.
Follow-Up Todos¶
- Add the new RasPi Node to
components/ansible/assets/global-taskfile.yml
for easy SSH connections. - Allow machine to work with GitHub. Use public key
id_rsa.pub
, NOT the private key! - Login to Docker registry on the new machine:
docker login
RasPi Fleet Overview¶
The Raspberry Pi fleet consists of multiple Raspberry Pi devices that serve as lightweight nodes in the home lab infrastructure. These devices handle dedicated roles including administrative tasks, monitoring and logging aggregation, and testing environments. Each Pi is configured through automated Ansible playbooks to ensure consistent deployment and management across the entire fleet.
Name | Model | RAM | Storage | Note |
---|---|---|---|---|
admin-pi |
Raspberry Pi 4B | 8GB | 128GB microSD | Help with administrative tasks in the home lab |
runner-04-pi |
Raspberry Pi 4B | 8GB | 32GB microSD | - |
runner-05-pi |
Raspberry Pi 4B | 8GB | 32GB microSD | - |
runner-06-pi5 |
Raspberry Pi 5 | 8GB | 32GB microSD | - |
admin-pi.fritz.box
¶
- Ansible Control Node
- The
admin-pi
is a special machine that can connect to the other raspi nodes as well as to the Ubuntu workstations. All other raspi nodes do not have any special ssh config. Administrative todos are reserved for theadmin-pi
and the Ubuntu workstations. - The
admin-pi
is capable of running Ansible playbooks to manage other nodes in the home lab. It can run all the same playbooks as the Ubuntu desktop workstations.
- The
- Monitoring and Logging Hub
- The
admin-pi
consolidates monitoring and logging data from all Linux nodes, including other Raspberry Pi nodes and Ubuntu workstations. It achieves this by running a powerful trio of open-source tools:- Prometheus: This tool is the foundation of the monitoring system. It collects metrics from all hosts (e.g. CPU usage, memory, disk I/O) and stores them in a time series database, allowing for historical analysis and trend tracking.
- Grafana: As the visualization layer, Grafana takes the metrics from Prometheus and transforms them into interactive and insightful dashboards. You can build custom graphs and charts to get a clear, at-a-glance view of your network's health and performance.
- Loki: This logging service is designed specifically for handling large volumes of log data efficiently. Loki works by using the same labels as Prometheus, which makes it easy to correlate metrics and logs for quick troubleshooting and root cause analysis.
- The
- Setup: In addition to the tasks listed in the Setup Guide above, please complete the following steps:
- Setup password-less ssh connections from
admin-pi
-
ssh-copy-id sebastian@caprica.fritz.box
-
ssh-copy-id sebastian@kobol.fritz.box
-
ssh-copy-id sebastian@admin-pi.fritz.box
(to allow Ansible runs against this host) -
ssh-copy-id sebastian@runner-04-pi.fritz.box
-
ssh-copy-id sebastian@runner-05-pi.fritz.box
-
ssh-copy-id sebastian@runner-06-pi5.fritz.box
-
- Setup password-less ssh connections from
runner-04-pi.fritz.box
¶
- Setup: In addition to the tasks listed in the Setup Guide above, please complete the following steps:
- Setup password-less ssh connections from
carpica
,kobol
andadmin-pi
-
ssh-copy-id sebastian@runner-04-pi.fritz.box
-
- Setup password-less ssh connections from
runner-05-pi.fritz.box
¶
- Setup: In addition to the tasks listed in the Setup Guide above, please complete the following steps:
- Setup password-less ssh connections from
carpica
,kobol
andadmin-pi
-
ssh-copy-id sebastian@runner-05-pi.fritz.box
-
- Setup password-less ssh connections from
runner-06-pi5.fritz.box
¶
- Setup: In addition to the tasks listed in the Setup Guide above, please complete the following steps:
- Setup password-less ssh connections from
carpica
,kobol
andadmin-pi
- `ssh-copy-id sebastian@runner-06-pi5.fritz.box
- Setup password-less ssh connections from