infra/ansible
2026-07-24 16:40:03 -05:00
..
baseline/proxmox fix: resolve best practice and lint violations 2026-06-04 14:34:23 -05:00
group_vars Fix vault.yml: remove spurious document separator that broke YAML parsing 2026-07-24 16:39:28 -05:00
host_vars Add incident.io alert integration for Icinga2 2026-07-24 16:36:49 -05:00
roles Remove direnv from base Debian packages (not in Ubuntu 22.04 repos) 2026-07-24 16:40:03 -05:00
scripts update 2026-01-30 17:27:52 -06:00
vars cleanup and reorg 2026-01-08 16:29:16 -06:00
.ansible-lint fix: resolve best practice and lint violations 2026-06-04 14:34:23 -05:00
.gitignore cleanup: remove forgejo, fix ssh key paths, fix tracking issues, update docs 2026-06-04 14:27:31 -05:00
ansible-bootstrap.cfg update radius 2026-07-12 15:35:31 -05:00
ansible.cfg updated talos 2026-07-05 13:27:15 -05:00
bootstrap-hosts cleanup and reorg 2026-01-08 16:29:16 -06:00
bootstrap.sh add ansible 2025-05-30 13:24:38 -05:00
bootstrap.yml add FreeBSD bootstrap, irc servers, hostname overrides, and cleanups 2026-06-19 17:19:29 -05:00
CLAUDE.md cleanup 2026-06-22 16:17:33 -05:00
hosts Add hi (74.50.113.232) with Forgejo + Caddy, bootstrapped support.vntx.net 2026-07-24 13:12:33 -05:00
LICENSE.md add ansible 2025-05-30 13:24:38 -05:00
Makefile cleanup: remove broken makefile targets, fix general.yml references 2026-06-04 14:37:55 -05:00
netbox.yml fix: resolve best practice and lint violations 2026-06-04 14:34:23 -05:00
notes.txt add ansible 2025-05-30 13:24:38 -05:00
playbook.yml Add hi (74.50.113.232) with Forgejo + Caddy, bootstrapped support.vntx.net 2026-07-24 13:12:33 -05:00
README.md cleanup 2026-06-22 16:17:33 -05:00
regenerate-ssh-keys.yml resolvers: NXDOMAIN blocklist via RPZ; fix Ansible deprecations 2026-06-07 10:32:42 -05:00
requirements.yml resolvers: NXDOMAIN blocklist via RPZ; fix Ansible deprecations 2026-06-07 10:32:42 -05:00
run.sh fix: resolve all logic bugs 2026-06-04 14:43:06 -05:00
setup-host.sh add ansible 2025-05-30 13:24:38 -05:00
talosconfig update 2026-07-19 14:41:46 -05:00
update_dns.sh updates 2026-02-17 08:26:29 -06:00

Ansible Infrastructure Management

This repository contains Ansible playbooks and roles for managing infrastructure across multiple environments.

Directory Structure

├── playbook.yml          # Main playbook (common, firewall, DNS, monitoring, etc.)
├── bootstrap.yml         # Bootstrap playbook for new hosts
├── netbox.yml            # Standalone NetBox deployment playbook
├── hosts                 # Inventory file
├── ansible.cfg           # Ansible configuration
├── requirements.yml      # Collection and role dependencies
├── group_vars/           # Group-specific variables
│   ├── all/              # Global variables
│   └── bind9_servers/    # BIND9 zone configurations
├── host_vars/            # Host-specific variables
├── vars/                 # Legacy base variables
├── roles/                # Ansible roles (26 roles)
│   ├── base/             # Base configuration (users, SSH, system)
│   ├── general/          # General system configurations
│   ├── caddy/            # Caddy web server
│   ├── firewall/         # UFW/firewalld management
│   ├── ns/               # BIND9 nameserver
│   ├── tailscale/        # Tailscale VPN
│   ├── monitor/          # Icinga2 monitoring
│   ├── prometheus/       # Prometheus monitoring stack
│   └── ...               # Other roles (see playbook.yml for all)
├── baseline/             # Proxmox baseline configuration
├── fact_cache/           # Ansible fact cache (gitignored)
└── findings.md           # Audit findings and recommendations

## Quick Start

### Bootstrap a new host
```bash
# For hosts with existing user access
make bootstrap-init HOSTNAME=hostname ANSIBLE_HOST=ip_address

# Full bootstrap with network config and reboot
make bootstrap HOSTNAME=hostname ANSIBLE_HOST=ip_address

Run playbooks

# Run main playbook
./run.sh

# Run on specific host
ansible-playbook -l hostname playbook.yml

# Run with specific tags
ansible-playbook -t caddy playbook.yml

Inventory Groups

  • vntx_servers - VNTX network services (logs, radius, vpn, netbox, unimus, monitor, librenms, uisp)
  • home_servers - Home network services (skippy, mail, dokku, aprs, staging, prom)
  • bind9_servers - BIND9 authoritative nameservers
  • caddy_servers - Servers running Caddy web server
  • monitoring_servers - Icinga2 monitoring master
  • prometheus_servers - Prometheus monitoring stack
  • postgresql_servers - PostgreSQL database servers
  • proxmox_servers - Proxmox virtualization hosts

See hosts file for the full inventory.

Key Features

  • Automated user management with GitHub SSH key integration
  • Base package installation across all systems
  • Role-based configuration management
  • Support for multiple OS families (Debian, Ubuntu, AlmaLinux)
  • Tailscale VPN integration
  • Caddy web server with automatic SSL
  • BIND9 authoritative DNS with DNSSEC
  • Icinga2 monitoring with PagerDuty integration
  • Prometheus/Grafana/Loki monitoring stack
  • NetBox IPAM/DCIM
  • Proxmox VM provisioning
  • LibreNMS network monitoring