De-ansible the probe battery: replace site.yml with battery.yml + battery.py loop #15

Closed
opened 2026-06-11 00:41:19 +00:00 by coilysiren · 0 comments
Owner

The probe battery was driven by an Ansible site.yml whose only job was to loop a static command list through scripts/step.py on localhost - no remote execution, no idempotency, no facts. Ansible paid its full conceptual cost for a for probe in list loop.

Change

  • Battery is now data - battery.yml holds ordered {id, cmd} rows with {target_addr}/{target}/{target_user} placeholders.
  • The loop is plain Python - scripts/battery.py sweeps battery.yml, calling scripts/step.py per row (capture-once / parse-thrice / post unchanged). scripts/battery.py ping dig runs a named subset.
  • dbglib.load_battery() reads battery.yml via yq, mirroring load_parser.
  • Removed - site.yml, roles/step/, inventory/, ansible.cfg, the ansible Brewfile line, the *.retry ignore.
  • Rewired - recovery-battery.sh calls scripts/battery.py instead of ansible-playbook site.yml. Docs (README/AGENTS/FEATURES/parsers/dependencies/o2r-coupling) and the ward catalog description drop the playbook framing.
  • Repo renamed - otel-a2a-relay-ansible-debug to otel-a2a-relay-debug (Forgejo + local remote).

All eight probes expand byte-for-byte identical to the old site.yml arrays. pre-commit run --all-files passes.

The probe battery was driven by an Ansible `site.yml` whose only job was to loop a static command list through `scripts/step.py` on localhost - no remote execution, no idempotency, no facts. Ansible paid its full conceptual cost for a `for probe in list` loop. ## Change * **Battery is now data** - `battery.yml` holds ordered `{id, cmd}` rows with `{target_addr}`/`{target}`/`{target_user}` placeholders. * **The loop is plain Python** - `scripts/battery.py` sweeps `battery.yml`, calling `scripts/step.py` per row (capture-once / parse-thrice / post unchanged). `scripts/battery.py ping dig` runs a named subset. * **`dbglib.load_battery()`** reads `battery.yml` via `yq`, mirroring `load_parser`. * **Removed** - `site.yml`, `roles/step/`, `inventory/`, `ansible.cfg`, the `ansible` Brewfile line, the `*.retry` ignore. * **Rewired** - `recovery-battery.sh` calls `scripts/battery.py` instead of `ansible-playbook site.yml`. Docs (README/AGENTS/FEATURES/parsers/dependencies/o2r-coupling) and the ward catalog description drop the playbook framing. * **Repo renamed** - `otel-a2a-relay-ansible-debug` to `otel-a2a-relay-debug` (Forgejo + local remote). All eight probes expand byte-for-byte identical to the old `site.yml` arrays. `pre-commit run --all-files` passes.
Commenting is not possible because the repository is archived.
No description provided.