34 lines
1002 B
Markdown
34 lines
1002 B
Markdown
# homelab-ansible
|
|
|
|
Ansible playbook to align my homelab VMs — Alpine & Debian.
|
|
|
|
## Roles
|
|
|
|
| # | Role | Purpose |
|
|
| --- | --------- | ------------------------------------------------------------- |
|
|
| 1 | `ufw` | Install UFW, deny incoming by default, allow only Tailscale |
|
|
| 2 | `repos` | Set Alpine repos to `edge` |
|
|
| 3 | `upgrade` | Upgrade all packages (handles Tailscale SSH drops gracefully) |
|
|
|
|
## Usage
|
|
|
|
```sh
|
|
# Full playbook
|
|
ansible-playbook homelab.yml
|
|
|
|
# Single role
|
|
ansible-playbook homelab.yml --tags ufw
|
|
|
|
# Dry-run
|
|
ansible-playbook homelab.yml --check --diff
|
|
```
|
|
|
|
## Inventory
|
|
|
|
- `inventory/tailscale_inventory.py` — dynamic inventory from local `tailscale status`, filtered by `tag:homelab`
|
|
- `inventory/static_groups.yml` — static group assignments (Alpine vs Debian)
|
|
|
|
## Vars
|
|
|
|
Per-role defaults live in `roles/*/defaults/main.yml`. Per-group overrides in `group_vars/`.
|