Ansible playbook tasks file must contain a list of tasks – Quick fix
Stuck by the error Ansible playbook tasks file must contain a list of tasks?
The Ansible is an automation tool for managing apps and server configuration.
Usually, the error shows up due to syntax error in the tasks/main.yml file in Ansible.
At Bobcares, we often get requests to fix Ansible errors, as a part of our Server Management Services.
Today, let’s have a look at Ansible and see how our Support Engineers fix this error.
A quick look at ansible and ansible-playbook
Ansible is an open-source automation tool. Ansible connects to other nodes via SSH and pushes Ansible modules into them.
Later it executes these modules and removes them when finished. The .yml files hold the configuration for Ansible.
Whereas an Ansible playbook is the scripts that define how this automation tool should work. That is, playbooks are Ansible’s configuration. This is also a .yml file.
Why does ansible-playbook show error tasks file must contain a list of tasks?
The playbook is the file that specifies the task that Ansible has to do. Hence any error in this file throws errors. One such error is
ERROR! The tasks/main.yml file for role 'xxxxx' must contain a list of tasks
The typical error that shows up while running a .yml file appears as,
Here the error messages specify where the exact error is. That is it specifies the offending line.
Usually, this error occurs due to syntax error in the .yml files. Now let’s see how our Support Engineers fix this error.
How we fix this ansible playbook error?
Whenever customers approach us with such an error, our Support Engineers check the Ansible files. We check the syntax of .yml files.
We check it using ansible-lint. This is a command-line tool for linting the playbooks. That is, it analyzes the code and troubleshoots errors.
The command usage is,
ansible-lint <.yml file>
Another common mistake every user makes is on the first-line. The .yml begin with ‘-‘ but most users miss this and throw errors while running it.
A sample main.yml file to install VIM appears as,
- name: "Installing VIM" apt: pkg=vim state=installed
Thus by correcting the syntax, we fix the error.
[Still, having trouble in fixing ansible errors? – We can help you.]
In short, Ansible playbook shows the error tasks file must contain a list of tasks, due to syntax error. Today, we saw how our Support Engineers fix this error.