71 lines
4.0 KiB
Markdown
71 lines
4.0 KiB
Markdown
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
|
|
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
|
|
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)
|
|
```
|