ansible-lint "fqcn[action-core]" violation in CI
ansible-lint requires fully qualified collection names. fqcn[action-core] fires when a task uses a short builtin name like copy or command instead of ansible.builtin.copy. It is auto-fixable.
What this error means
ansible-lint reports "fqcn[action-core]: Use FQCN for builtin module actions (copy)" and suggests the ansible.builtin. prefixed name.
ansible-lint
fqcn[action-core]: Use FQCN for builtin module actions (copy).
Use `ansible.builtin.copy` instead.
roles/webserver/tasks/main.yml:8Common causes
Tasks use short builtin module names
Older playbooks call copy, command, or service without the ansible.builtin. prefix, which the fqcn rule flags.
A stricter profile enabled the rule
Moving to a higher ansible-lint profile turns fqcn into a hard failure rather than a warning.
How to fix it
Auto-fix with ansible-lint --fix
ansible-lint can rewrite short names to their FQCN form automatically.
Terminal
ansible-lint --fixUse the FQCN in tasks
Prefix builtin modules with ansible.builtin..
tasks/main.yml
- name: Deploy config
ansible.builtin.copy:
src: app.conf
dest: /etc/app/app.confHow to prevent it
- Write new tasks with FQCN module names from the start.
- Run
ansible-lint --fixto migrate legacy short names. - Keep the lint profile consistent between local and CI.
Related guides
ansible-lint "syntax-check[specific]" failure in CIFix ansible-lint "syntax-check[specific]" in CI - ansible-lint ran ansible playbook --syntax-check and it fai…
ansible-lint "production" profile failure in CIFix ansible-lint failures after enabling the production profile in CI - the strictest profile turns many warn…
ansible-lint "no-changed-when" violation in CIFix ansible-lint "no-changed-when" in CI - a command or shell task has no changed_when, so it always reports…