ERROR! ‘fail’ is not a valid attribute for a Play

The fail directive has to be used at the task level.

This means that to get your desired effect, you would have to do something like

---
   vars_prompt:
      - name: "var1"
        prompt: "Please pass variable"
        private: no

   tasks:
     - fail: msg="var1 is not passed or blank"
       when: var1 is undefined or ( var1 is defined and storeid == "" )

And you would simply place the rest of your tasks after that declaration. The “ERROR! ‘fail’ is not a valid attribute for a Play” message is because you’re currently declaring it at a nesting level that Ansible is expecting to be a play.

Leave a Comment