Krikri::PlaybookParser::NonDictVarsError
A task/handler/block/play/roles-entry vars: whose value is not a
mapping (vars: as a YAML sequence of single-key mappings is the
shape real roles keep shipping - lullis.certbot_nginx's
"install vhosts" task). ansible-core's Base._load_vars refuses the
WHOLE playbook at load time (rc=4, no play banner, before any task
runs) with "Vars in a <class> must be specified as a dictionary."
where <class> is the loading object's own Python class name -
Task, Handler, Block, Play, RoleInclude (playbook roles: entries
and meta/main.yml dependencies alike), TaskInclude /
HandlerTaskInclude (include_tasks:/import_tasks: lines), IncludeRole
(include_role:/import_role: lines) or PlaybookInclude
(import_playbook: lines) - live-verified vs 2.19.11 for every one.
The Origin points at the vars: VALUE's start (the first - of a
sequence, the scalar's first char of a scalar), not at the vars:
key. krikri used to skip the key entirely via the as_h? read
(silently running a playbook Ansible refuses - the round-298963492
exit-code divergence on lullis.certbot_nginx). Carries the rendered
stderr block for krikri-playbook.cr to print verbatim.