bootstrap.yml prepares a host as an admin via -u; new-deploy-key.sh makes the
key pair and refuses to write inside the repo. CI deploys refuse the bootstrap
playbook, since the dispatch API ignores the dropdown.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
-e start=false (mode sync in CI) lands the payload and starts nothing, for
migrations. A check run on a never-deployed stack now skips Compose with a note
instead of failing on the missing directory.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
become was indented as a module parameter, so any entry setting owner or
group failed. metrics' grafana-data is one.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An inventory ansible_user outranks a command-line -u, so -u was silently
ignored. A config default sits below it, which lets a bootstrap run as an
admin account.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One role that syncs a payload and brings the stack up, configured entirely
through stack_* variables, plus six playbooks that each demonstrate one part
of that contract. Every playbook runs standalone and is tagged with its
stack name, so site.yml --tags <stack> works.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>