Clean Code for DevOps: Refactoring my Ansible Lab into Roles
Source: Dev.to
Refactoring into Ansible Roles
As my Ansible project grew, my single master playbook started to get crowded. Today I decided to “graduate” my automation by implementing Ansible Roles.
Directory structure
/roles/web_servers
/roles/workstations
/roles/db_servers
/roles/file_servers
This refactor allows me to treat my infrastructure like LEGO blocks. Need a new web server? Just call the role. Want to update my workstation? The logic is isolated and safe.


Lessons learned
The biggest challenge was managing file paths and ensuring that each tasks/main.yml in a role was correctly referenced. It requires a bit more setup time initially, but long‑term maintenance is now nearly zero.