Initial IaC setup: Nomad, Consul, Terraform, Ansible

- Ansible roles for Nomad and Consul installation
- Nomad job specs for Traefik and monitoring stack
- Terraform configuration for Nomad job management
- Enterprise naming convention inventory
- HashiCorp stack deployment playbook
This commit is contained in:
2026-02-04 08:52:08 -06:00
commit 3d3c1af237
15 changed files with 998 additions and 0 deletions
+109
View File
@@ -0,0 +1,109 @@
---
# Hobbs.farm Infrastructure Inventory
# Naming: <location>-<type><function>-<sequence>
all:
vars:
ansible_python_interpreter: /usr/bin/python3
domain: hobbs.farm
timezone: America/Chicago
# HashiCorp versions
nomad_version: "1.7.3"
consul_version: "1.17.2"
vault_version: "1.15.4"
# Cluster settings
datacenter: hf-dc1
# Data paths
nomad_data_dir: /opt/nomad
consul_data_dir: /opt/consul
vault_data_dir: /opt/vault
children:
# =========================================
# Nomad Cluster
# =========================================
nomad_servers:
hosts:
hf-pdocker-01:
nomad_server: true
nomad_client: true
nomad_bootstrap_expect: 1
nomad_clients:
hosts:
hf-pdocker-01:
nomad_client: true
nomad_node_class: "primary"
hf-pdocker-02:
nomad_client: true
nomad_node_class: "secondary"
# =========================================
# Consul Cluster
# =========================================
consul_servers:
hosts:
hf-pdocker-01:
consul_server: true
consul_bootstrap_expect: 1
consul_clients:
hosts:
hf-pdocker-01:
hf-pdocker-02:
# =========================================
# Vault Cluster
# =========================================
vault_servers:
hosts:
hf-pdocker-01:
vault_server: true
# =========================================
# Physical Hosts
# =========================================
physical:
children:
docker_hosts:
hosts:
hf-pdocker-01:
ansible_host: 192.168.86.192
ansible_user: glyptic
ansible_become_password: "{{ vault_sudo_password }}"
legacy_name: hobbs
role: primary
hf-pdocker-02:
ansible_host: 192.168.86.45
ansible_user: glyptic
ansible_ssh_private_key_file: ~/.ssh/id_docker_server
legacy_name: peggy
role: secondary
status: degraded
nvr_hosts:
hosts:
hf-pnvr-01:
ansible_host: 192.168.86.181
ansible_user: glyptic
ansible_ssh_private_key_file: ~/.ssh/id_docker_server
legacy_name: bart
# =========================================
# Network & Storage (reference only)
# =========================================
network:
hosts:
hf-nfw-01:
ansible_host: 192.168.86.1
legacy_name: firewalla
storage:
hosts:
hf-snas-01:
ansible_host: 192.168.86.30
legacy_name: nas