Complete ansible toolkit with generation and validation capabilities
70
87%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
This guide provides replacement alternatives for deprecated or legacy Ansible modules. Use this reference when ansible-lint reports deprecated module warnings or when updating older playbooks to modern best practices.
Use the FQCN checker script to automatically detect non-FQCN module usage:
# Scan a playbook
bash scripts/check_fqcn.sh playbook.yml
# Scan a role
bash scripts/check_fqcn.sh roles/webserver/
# Scan entire directory
bash scripts/check_fqcn.sh .The script identifies modules using short names and provides specific FQCN migration recommendations.
| Deprecated Module | Replacement | Notes |
|---|---|---|
apt (short name) | ansible.builtin.apt | Use FQCN for clarity |
yum (short name) | ansible.builtin.yum or ansible.builtin.dnf | dnf preferred for RHEL 8+ |
pip (short name) | ansible.builtin.pip | Use FQCN |
easy_install | ansible.builtin.pip | easy_install is deprecated in Python |
homebrew | community.general.homebrew | Moved to community.general |
zypper | community.general.zypper | Moved to community.general |
apk | community.general.apk | Moved to community.general |
| Deprecated Module | Replacement | Notes |
|---|---|---|
copy (short name) | ansible.builtin.copy | Use FQCN |
file (short name) | ansible.builtin.file | Use FQCN |
template (short name) | ansible.builtin.template | Use FQCN |
lineinfile (short name) | ansible.builtin.lineinfile | Use FQCN |
blockinfile (short name) | ansible.builtin.blockinfile | Use FQCN |
synchronize | ansible.posix.synchronize | Moved to ansible.posix |
acl | ansible.posix.acl | Moved to ansible.posix |
| Deprecated Module | Replacement | Notes |
|---|---|---|
service (short name) | ansible.builtin.service or ansible.builtin.systemd | Use systemd for systemd-based systems |
systemd (short name) | ansible.builtin.systemd | Use FQCN |
sysvinit | ansible.builtin.service | service module handles sysvinit |
| Deprecated Module | Replacement | Notes |
|---|---|---|
user (short name) | ansible.builtin.user | Use FQCN |
group (short name) | ansible.builtin.group | Use FQCN |
authorized_key (short name) | ansible.posix.authorized_key | Moved to ansible.posix |
| Deprecated Module | Replacement | Notes |
|---|---|---|
get_url (short name) | ansible.builtin.get_url | Use FQCN |
uri (short name) | ansible.builtin.uri | Use FQCN |
iptables | ansible.builtin.iptables | Use FQCN |
ufw | community.general.ufw | Moved to community.general |
firewalld | ansible.posix.firewalld | Moved to ansible.posix |
| Deprecated Module | Replacement | Notes |
|---|---|---|
command (short name) | ansible.builtin.command | Use FQCN; prefer specific modules |
shell (short name) | ansible.builtin.shell | Use FQCN; prefer specific modules |
raw (short name) | ansible.builtin.raw | Use FQCN; use only when necessary |
script (short name) | ansible.builtin.script | Use FQCN |
| Deprecated Module | Replacement | Notes |
|---|---|---|
ec2 | amazon.aws.ec2_instance | Use amazon.aws collection |
ec2_ami | amazon.aws.ec2_ami | Use amazon.aws collection |
ec2_vpc | amazon.aws.ec2_vpc_net | Use amazon.aws collection |
azure_rm_* | azure.azcollection.* | Use azure.azcollection |
gcp_* | google.cloud.* | Use google.cloud collection |
docker_container | community.docker.docker_container | Use community.docker collection |
docker_image | community.docker.docker_image | Use community.docker collection |
| Deprecated Module | Replacement | Notes |
|---|---|---|
mysql_db | community.mysql.mysql_db | Use community.mysql collection |
mysql_user | community.mysql.mysql_user | Use community.mysql collection |
postgresql_db | community.postgresql.postgresql_db | Use community.postgresql collection |
postgresql_user | community.postgresql.postgresql_user | Use community.postgresql collection |
mongodb_* | community.mongodb.* | Use community.mongodb collection |
| Deprecated Module | Replacement | Notes |
|---|---|---|
nagios | community.general.nagios | Use community.general collection |
zabbix_* | community.zabbix.* | Use community.zabbix collection |
# Old style (deprecated)
- name: Install nginx
apt:
name: nginx
state: present
# New style (recommended)
- name: Install nginx
ansible.builtin.apt:
name: nginx
state: present# Old style (deprecated)
- name: Configure firewall
ufw:
rule: allow
port: '443'
# New style (recommended)
- name: Configure firewall
community.general.ufw:
rule: allow
port: '443'When migrating to FQCN modules, ensure the required collections are installed:
# Install common collections
ansible-galaxy collection install ansible.posix
ansible-galaxy collection install community.general
ansible-galaxy collection install community.docker
ansible-galaxy collection install community.mysql
ansible-galaxy collection install community.postgresql
ansible-galaxy collection install amazon.aws
ansible-galaxy collection install azure.azcollection
ansible-galaxy collection install google.cloudOr create a requirements.yml:
---
collections:
- name: ansible.posix
version: ">=1.5.0"
- name: community.general
version: ">=6.0.0"
- name: community.docker
version: ">=3.0.0"
- name: community.mysql
version: ">=3.0.0"
- name: community.postgresql
version: ">=2.0.0"Then install with:
ansible-galaxy collection install -r requirements.ymlUse ansible-lint to identify deprecated modules in your playbooks:
# Check for deprecated module usage
ansible-lint --profile production playbook.yml
# Show rule documentation for deprecated modules
ansible-lint -L | grep deprecated