playbooks/site.yml imports the docker_host role, but it didn't exist, so ansible-lint's syntax-check failed on a clean checkout — breaking CLAUDE.md's "main must always work" / "Never skip lint" (top open finding O1 from the 2026-06-11 review). Scaffold docker_host as a proper placeholder via the prescribed mechanism (make new-role): filled meta/main.yml + README, an honest no-task tasks/main.yml documenting planned scope (Docker engine + Compose, daemon hardening, nftables.d container rules per ADR-004/020), and the standard molecule scenario. This preserves site.yml's full-standard-state intent rather than dropping the play. Update STATUS.md (docker_host moves from "Not in git" to "scaffolded, no tasks") and the role/playbook READMEs to match. make lint: 0 failures, 0 warnings; check-tags OK. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
20 lines
581 B
YAML
20 lines
581 B
YAML
---
|
|
# site.yml — apply full standard state to all hosts
|
|
# Run via: make deploy PLAYBOOK=site
|
|
# NOTE: `base` is only partially built (its `firewall` concern; see STATUS.md) and
|
|
# `docker_host` is scaffolded but has no tasks yet, so this playbook applies base's
|
|
# firewall but is otherwise incomplete until those roles gain content.
|
|
|
|
- name: Apply base configuration to all hosts
|
|
hosts: all
|
|
become: true
|
|
roles:
|
|
- role: base
|
|
tags: [base]
|
|
|
|
- name: Configure Docker hosts
|
|
hosts: docker_hosts
|
|
become: true
|
|
roles:
|
|
- role: docker_host
|
|
tags: [docker_host]
|