infra/ansible/README.md
2025-07-23 12:34:33 -05:00

1.9 KiB
Executable file

Ansible Infrastructure Management

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

Directory Structure

├── playbook.yml          # Main playbook for common configuration
├── general.yml           # General system setup playbook
├── bootstrap.yml         # Bootstrap playbook for new hosts
├── roles/               # Ansible roles
│   ├── base/           # Base configuration (users, SSH, system)
│   ├── general/        # General system configurations
│   ├── caddy/          # Caddy web server
│   ├── ns/             # Nameserver configuration
│   ├── resolvers/      # DNS resolver setup
│   └── ...             # Other roles
├── group_vars/         # Group-specific variables
├── host_vars/          # Host-specific variables
└── hosts               # Inventory file

## Quick Start

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

# For hosts with only root access
make bootstrap-init-root 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
  • app_servers - Application servers
  • home_servers - Home network devices
  • tailscale_home - Devices using Tailscale VPN
  • caddy_servers - Servers running Caddy web server

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 reverse proxy configuration