ADR-0013: ansible-core 2.24 FQCN requirement¶
Status¶
Accepted — 2026-04-02
Context¶
Ubuntu 25.10 ships ansible-core 2.18+ via pip, and the platform targets ansible-core >= 2.17. Starting with ansible-core 2.17, short module names (e.g., apt, copy, service) are deprecated. ansible-lint with the production profile enforces Fully Qualified Collection Names (FQCN) and fails on short names.
During the v0.4 baseline run, ansible-lint flagged dozens of FQCN violations across the common, ssh_hardening, docker, and node_exporter roles.
Decision¶
All Ansible tasks in the Archon platform must use Fully Qualified Collection Names.
Examples:
- apt → ansible.builtin.apt
- copy → ansible.builtin.copy
- service → ansible.builtin.service
- template → ansible.builtin.template
- file → ansible.builtin.file
- lineinfile → ansible.builtin.lineinfile
- command → ansible.builtin.command
- shell → ansible.builtin.shell
- debug → ansible.builtin.debug
- assert → ansible.builtin.assert
- setup → ansible.builtin.setup
Rationale¶
- ansible-core 2.17+ deprecates short names — they will be removed in a future major version
- FQCN eliminates ambiguity when custom collections are installed alongside
ansible.builtin - ansible-lint
productionprofile enforces FQCN — CI pipeline will fail without it - Consistent naming across all roles makes grep/search reliable
Consequences¶
- All existing roles must be audited and converted to FQCN
- New roles must use FQCN from the start
- ansible-lint with
productionprofile runs in CI as a gate - No exceptions — even single-task playbooks use FQCN