My Nomad homelab
acls | ||
ansible_galaxy | ||
ansible_playbooks | ||
core | ||
databases | ||
services | ||
storage_plugins | ||
.gitignore | ||
.pre-commit-config.yaml | ||
.secrets-baseline | ||
.terraform.lock.hcl | ||
.tflint.hcl | ||
ansible.cfg | ||
core.tf | ||
Makefile | ||
nomad_vars.py | ||
providers.tf | ||
README.md | ||
requirements.txt | ||
root.tf | ||
service.nomad | ||
services.tf | ||
vars.tf |
Homelab Nomad
My configuration for creating my home Nomad cluster and deploying services to it.
Running
make all
Design
Both Ansible and Terraform are used as part of this configuration. All hosts must be reachable over SSH prior to running any of this configuration.
To begin, Ansible runs a playbook to setup the cluster. This includes installing Nomad, bootstrapping the cluster and ACLs, setting up NFS shares, creating Nomad Host Volumes, and setting up Wesher as a Wireguard mesh between hosts.
After this is complete, Ansible variables must be set for services to access and configure correctly. This depends on variables to be set based on the sample file.
Finally, the Terraform configuration can be applied setting up all services deployed on the cluster.