So, here's the full site.yml file. If I dont input a revision number (I hit 
enter at the prompt), it throws the error message as expected BUT it also 
executes the role. I want it to bomb out w/ the error msg and not continue.
 

---
- hosts: webservers
  user: deployment
#  serial: 1

  vars_prompt:
   - name: "revision_no"
     prompt: "Input revision number"
     private: no

  vars_files:
  - "group_vars/deploy_list"

  tasks:
  - name: Checking for required variables
    fail: msg="Playbook execution failed - 'revision_no' is required!"
    when: not revision_no

  roles:
  - { role: web, when: revision_no is defined }


On Monday, May 5, 2014 1:19:05 PM UTC-4, Garrett Plasky wrote:
>
> There may be a better way to do this but I solved the problem by having a 
> separate task initially that verifies the variable is set and fails the 
> play if not (via the fail module).
>
> - name: Checking for required variables
>   fail: msg="Playbook execution failed - 'revision_no' is required!"
>   when: not revision_no
>
> If you don't want the play to outright fail, you could replace the fail 
> module with something like debug.
>
> On Monday, May 5, 2014 7:58:27 AM UTC-7, Samnang Sen wrote:
>>
>> That last line is supposed to read "revision_no is defined"
>>
>> On Monday, May 5, 2014 10:53:54 AM UTC-4, Samnang Sen wrote:
>>>
>>> Let's say I ask for a revision_no from the user. If the user doesn't 
>>> input a value, I would like to display a custom message. Right now ansible 
>>> shows a bunch of "skipping" message, but I know my users would want to know 
>>> why it skipped.
>>>
>>> - hosts: webservers
>>>   user: deployment
>>> #  serial: 1
>>>
>>>
>>>   vars_prompt:
>>>    - name: "revision_no"
>>>      prompt: "Input revision number"
>>>      private: no
>>>
>>>   vars_files:
>>>   - "group_vars/deploy_list"
>>>
>>>   roles:
>>>   - { role: web, when: revision_no is not defined }
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/efad2eb5-9e3a-4ce4-8ec0-37329073849f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to