Build an Ansible playbook without the YAML pitfalls
Ansible playbooks are powerful but unforgiving about indentation and module names. A single mis-indented task or a deprecated short module name can stop a run. This builder assembles a clean, valid playbook from simple inputs so you can focus on what to provision rather than YAML syntax.
How it works
The output is a single-play playbook: a list with one mapping holding name, hosts, become, optional vars, and a tasks list. Each chosen action becomes a task using a fully qualified ansible.builtin module. Packages use apt or yum with a list and a state of present. Services use the service module with state: started and enabled: true. File copies use the copy module with src and dest. The builder emits two-space indentation throughout, which is the YAML standard Ansible expects, and quotes values only when needed.
Tips and example
Set hosts to webservers and enable become to install Nginx and start it. List packages one per line, for example nginx and git, and services one per line, for example nginx. Add a var like http_port: 80 and reference it elsewhere with the Jinja {{ http_port }} syntax. Save the result as site.yml and run ansible-playbook -i inventory site.yml.