blumeops/docs/reference/tools/ansible.md
Erich Blume 517080aeab Add reference/tools/ category with Dagger, ArgoCD CLI, Ansible, and Pulumi cards (#178)
## Summary

- Create `docs/reference/tools/` with four reference cards: Dagger (build engine), ArgoCD CLI (deployment workflows), Ansible (config management), and Pulumi (DNS/Tailscale IaC)
- Move `ansible/roles.md` → `tools/ansible.md`, broadened with CLI patterns and dry-run usage
- Update `reference.md` index: add "Tools" section, remove old "Ansible" section
- Update `update-documentation.md` to reflect Dagger build process (workflow steps, manual build recipe, runner environment)
- Update `adopt-dagger-ci.md` plan to note how-to articles were handled via reference card + existing how-to updates
- Fix all broken `[[roles]]` wiki-links across 5 files → `[[ansible]]`

## Verification

- `docs-check-links` ✓ — no broken wiki-links
- `docs-check-index` ✓ — all docs referenced in category index
- `docs-check-filenames` ✓ — no duplicate filenames
- All pre-commit hooks pass

Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/178
2026-02-12 19:18:46 -08:00

1.6 KiB

title modified tags
Ansible 2026-02-12
ansible
reference

Ansible

Configuration management for native services on indri. The primary playbook is ansible/playbooks/indri.yml.

CLI Patterns

# Full provisioning
mise run provision-indri

# Specific role only
mise run provision-indri -- --tags caddy

# Dry run (preview changes)
mise run provision-indri -- --check --diff

Available Roles

Role Purpose Service
alloy Observability collector alloy
borgmatic Backup automation borgmatic
borgmatic_metrics Backup metrics exporter borgmatic
caddy Reverse proxy & TLS routing
forgejo Git forge forgejo
jellyfin Media server jellyfin
jellyfin_metrics Media metrics exporter jellyfin
minikube Kubernetes cluster cluster
minikube_metrics Cluster metrics cluster
zot Container registry zot
zot_metrics Registry metrics zot

Role Structure

Each role follows Ansible conventions:

ansible/roles/<role>/
├── defaults/main.yml    # Default variables
├── tasks/main.yml       # Task definitions
├── handlers/main.yml    # Handlers (restarts, etc.)
├── templates/           # Jinja2 templates
└── files/               # Static files

Secrets

Roles that need secrets use 1Password via the playbook's pre_tasks. Secrets are gathered at playbook start and passed to roles as variables.