Skip to content

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: - aptansible.builtin.apt - copyansible.builtin.copy - serviceansible.builtin.service - templateansible.builtin.template - fileansible.builtin.file - lineinfileansible.builtin.lineinfile - commandansible.builtin.command - shellansible.builtin.shell - debugansible.builtin.debug - assertansible.builtin.assert - setupansible.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 production profile 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 production profile runs in CI as a gate
  • No exceptions — even single-task playbooks use FQCN