Skip to main content
This guide demonstrates a practical workflow for diagnosing and fixing a broken Ansible playbook by running it, collecting real error output, and iterating with ChatGPT. The goal is to correct syntax, module usage, and variable issues while following Ansible best practices. What you’ll learn:
  • How to run a broken playbook and capture errors
  • Which common mistakes cause playbooks to fail
  • How to iterate with ChatGPT (or another LLM) to produce a corrected playbook
  • Best practices: FQCNs, correct service names, and privilege escalation

Scenario

You joined a DevOps team that uses Ansible. Playbooks were written at different times by different people (and sometimes generated by AI). Many fail on first run or show syntax errors. Your task: take a broken playbook, run it, gather errors, and iterate with ChatGPT until the playbook runs successfully on the target hosts.

Environment

I switched into a VM in the working directory named buggy. The inventory and Ansible config are already present.
Create a deliberately buggy playbook called site.yml (or site.yaml) and iterate until fixed. Open the repository in an editor (VS Code) to inspect and edit site.yml.
A screenshot of Visual Studio Code in dark theme showing the Welcome page and Explorer panel with a folder named "BUGGY" containing files like ansible.cfg, inventory, and site.yml. The right side shows walkthroughs and an "Build with agent mode" panel.
When saving, linting and editor diagnostics will highlight obvious YAML issues. Copy the broken playbook and paste it into ChatGPT, asking for issues and corrections. I pasted the following broken playbook into ChatGPT:
I used a prompt like: “This is an Ansible playbook with problems during execution. Please identify the issues and fix all possible problems.” Here’s the ChatGPT interface I used (for context):
A screenshot of the ChatGPT webpage with the central prompt "What's on your mind today?" and a typed message mentioning an Ansible playbook. Browser tabs and a Red Hat-themed toolbar are visible along the top.

Common issues found

ChatGPT identified the following key problems and recommended fixes. The table below summarizes each issue and what to change. Other best practices: ensure you run playbooks against test hosts, verify OS/distribution, and set correct file ownership for web content.

Fixed playbook

After iterating with ChatGPT, incorporating the correct context (RHEL target, need for privilege escalation, best practices), we consolidated a single corrected playbook. It uses FQCNs, become: true, correct service/module names, and properly configured handlers.
Always verify the environment (OS/distribution), service names, and file ownership before applying changes to production systems. Run playbooks against a non-production or test host first.

Run the corrected playbook

Save the fixed file as site.yml, then execute it with ansible-playbook:
Expected (successful) output:

Conclusion

Iteratively feeding real error output and context to ChatGPT can speed up diagnosing and fixing broken playbooks. Key takeaways:
  • Provide correct context up front (OS distribution, required privileges, intended service names).
  • Prefer FQCNs (ansible.builtin.*) to satisfy linters and avoid ambiguity.
  • Test playbooks on non-production hosts before rolling out changes.
  • Human review remains essential: validate generated changes and verify ownership/permissions.
Further reading:
  • Ansible module index and FQCN guidance in official docs
  • Best practices for handlers and notifications

Watch Video