Before We Start

Before we start, I want to mention that I've provided an Ansible playbook for most of the setup tasks. While I encourage you to use it, I also recommend doing things manually at first. Experience the process, let frustration build, and allow yourself to feel the annoyance.
Just as I did, I want you to truly understand why we use certain tools. You'll only internalize this by initially experiencing the challenges and then resolving them by introducing the right tools.
Once you feel the process, once you get tired of typing the same commands over and over again, you can then use the Ansible playbook to automate the same tasks across the other devices. This is really the only way to truly understand the process and the tools we use, and why we use them.
While learning all this, I have failed countless times.
- I had to reset my Raspberry Pi's multiple times.
- I had to re-flash the SD cards multiple times.
- I had to re-install the OS multiple times.
- I had to re-configure the SSH aliases multiple times.
- I had to re-configure the static IP addresses multiple times.
- I had to re-configure the Wi-Fi multiple times.
- I had to re-configure the swap multiple times.
- I had to re-configure the Bluetooth multiple times.
- I had to re-configure the fans multiple times.
- I had to re-configure the everything multiple times.
All this is part of the learning process. And that very failure is what will lead you to the right tools and understanding. And additionally, it will enforce your learning by making you remember the process and the tools we use.
The most beautiful part about this entire learning process is that you will be able to learn so many things. And the most fascinating part is that they are all interconnected, and necessary for our cluster to work. It can often feel confusing learning some of these things in isolation, whereas when you learn them in the context of the cluster and this entire setup, it becomes much easier to understand.