Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ERROR! 'fail' is not a valid attribute for a Play

Tags:

ansible

I'm new to Ansible. Below is the small snippet of the playbook which I am trying to play but facing the error "ERROR! 'fail' is not a valid attribute for a Play"

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

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

I have tried multiple options found on stackoverflow but no success.

like image 630
RegexCracker Avatar asked Oct 21 '25 13:10

RegexCracker


1 Answers

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.

like image 144
RMcBTay Avatar answered Oct 23 '25 08:10

RMcBTay