1.9 KiB
Executable file
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 servicesapp_servers- Application servershome_servers- Home network devicestailscale_home- Devices using Tailscale VPNcaddy_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