feat: system config with tailscale module ssh and more
feat: add new docs around nix config, existing arch packages, and nuc boot iso
Adding stub for dnsmasq initial config
This project houses all of the configuration, documentation, code, and more around my at-home cluster project. This will provide a deeper look into multiple areas such as elastic computing, IoT, MaaS, and various popular projects that can play a part as a running service, networking layer, and more.
To start off, a list of the hardware involved in the project:
server_array:
nas:
An important focus for allowing easier management of each of the servers is to use a system built around provisioning hardware. An example of this, and one that I plan to investigate first, is Canonical's Metal-as-a-Service[0]. This automates the process of network booting a device, installing an operating system, and configuration this system. It provides this capability across the network, making it possible for a device to be readied for any purpose. From the brief introduction, it supports provisioning of Windows, Ubuntu, and CentOS. Furthermore, it integrates well with Canonical's Juju software[1], which provides the means of insetalling and configuring software onto provisioned MaaS devices.
Not sure what a cluster project would be without at least some manner of container orchestration. Whether it's messing around with Kubernetes[2], OKD[3], or Nomad[4], I'm hoping to automate provisioning and configuration of the platform with Juju or a similar product. I'm not terribly attached to the Kubernetes model, and love some of HashiCorp's projects, so I may lean that direction first. There are success stories[5] of people setting up Nomad on Raspberry Pi clusters that simplified the process over that of Kubernetes.
Currently my server setup is a CentOS server with Docker containers for any services. The disks are configured in RAID 5, but the logical volume is not in any way shared across the network. This is something that I would like to change in the cluster implementation. The server now would be replaced with a system focused on being either a NAS or other network available storage resource. I'm not intending on adding another storage device for redundancy and implementing a distributed solution like Ceph[6] necessarily, but it's an interesting topic I might research further. As of now, I would like to set up the server with a hypervisor such as Proxmox[7], running FreeNAS[8] as the primary role of the server.
Honestly, Nomad allows basically everything to be managed. Beyond just containers, you can also manage services[9] and virtual machines[10] with similar task definitions.
For further reference on the following topics of the project, see the following:
nucs:
jetsons:
nas_server:
virtualization:
networking:
container_orchestration:
maas:
general_links: