From a34129b11b56d99d686511dac775b7b67bb4b0bd Mon Sep 17 00:00:00 2001 From: Jonas Forsberg Date: Sat, 6 Nov 2021 10:21:42 +0100 Subject: [PATCH] . --- README.md | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/README.md b/README.md index e69de29..d72444c 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,68 @@ +I've always had a bunch of hardware at home to play with and test new software and products on, but that has over the years developed into a tier-1 production system (according to my family) and the ability to tear it down and/or reconfigure it has diminished. +So to keep the peace at home I decided to build a new and dedicated setup for my home lab. +I had some goals for the build: + - **Completely isolated**, I wanted to be able to test PXE, DHCP and other network technologies that potentially would collide with my home network. + - **Portable**. Due to lack of space, I needed to be able to easily remove the home lab and stow it away in the storage room when it's not in use. + - I wanted both **x86_64 and aarch64** architecture. + - Lastly, I wanted it to be **affordable** to build. + +The result, a complete lab environment contained in a hard case +![tlu_closed](https://user-images.githubusercontent.com/254416/140306727-97f4bc65-eca4-48f9-b455-ff1a94e2e90c.png) +![tlu_open](https://user-images.githubusercontent.com/254416/140306795-052af1ba-8b0b-414a-93e0-73963cb7d6ee.png) + +Everything is contained in a hard case with a stripped monitor in the case lid. +All I need is to hook up the case to the power main and it's good to go. The case is divided with a plywood board and some components are mounted/hidden beneath, such as 8-port Network switch, USB-charger to power the Raspberry Pi's and all the power supplies. On top of the board you can see the following components: + +![tlu_callouts](https://user-images.githubusercontent.com/254416/140307075-38a2d31d-5250-4bc3-9cbf-0130b7f3c21b.png) +1. C14 power connector +2. Admin server: ASUS PN50 (8-core, 16GB RAM, 512GB NVMe, 1TB SSD) +3. USB GbE to be used to attache to external networks +4. HDMI connector for the monitor in the lid +5. Power connector for the monitor +6. Ethernet connector to the switch under the plywood +7. 4-port KVM +8. Small box to store USB thumb drives, HDMI->HDMI-mini dongle, etc. +9. Switch to power on/off the USB charger beneath the plywood +10. 3 RPi4 8GB +11. 3 ASUS PN50 (8-core, 16GB RAM, 512GB NVMe) + +## Admin server +The Admin server is running openSUSE Leap 15.3 and is hosting all network services (dhcp, ntp, dns, etc) for the internal networks. +It also runst hostapd and uses the Asus PN50 wireless as access point to the internal network so I can connect with wifi from my laptop or I can connect the external NIC to a network and get a DHCP address and connect with ssh. +Everything is configured with a script and salt, so reinstalling the Admin server is done in a ease + +## Three Asus PN50 (#11) +They will be running Harvester as default, the default harvester cluster is installed using PXE on the Admin server and the configuration is done in the Admin server setup script. +This makes it makes it easy to tear down and rebuild when I need to do other tests/labs that needs physical hardware. + +## Three RPi4 (#10) +They will be running a three node k3s (etcd) cluster as default. + +## Network diagram +``` + external eth1 (dhcp) + │ + │ + │ + ┌─────┴──────┐ + │ │ + │ │ + │ Admin ├───────── wifi AP wlan0 + │ │ Internal + │ │ + └┬──┬───┬──┬─┘ + │ │ │ │ eth0.250 + │ │ │ └───────────────arigap + ┌────┘ │ │ (172.18.250.1/24) + │ │ │ +eth0 (172.18.0.1/24) │ │ + Internal │ └───────┐ + │ │ + eth0.100 │ + Public-1 │ + (172.18.100.1/24) │ + │ + eth0.200 + Public-2 + (172.18.200.1/24) +```