First of all failed_when doesn't work for vars_prompt only for tasks..

here is what you could do :

- hosts: all
  any_errors_fatal: yes
  vars_prompt:
    name: "confirmation"
    prompt: "Are you sure you want to run this playbook? Answer with 'YES'"
    default: "NO"
    private: no
  tasks:
    - name: Check Confirmation
      fail: msg="Playbook run confirmation failed"
      when: confirmation != "YES"


note the use of any_errors_fatal, this is important because otherwise the 
check task will only fail for the current host only, this makes the whole 
playbook fails on any errors.

problem with this is that it's not foolproof for instance if you did 
confirm the run and any of your tasks failed, it'd fail the whole playbook 
as opposed to the default behavior of taking out the just the host that 
failed.

the only way to counter this is to use  when: confirmation == "YES" in all 
your tasks, instead of using a primary "Fail Task", a bit ugly but a safer 
route depending on your use case.

also if you go  the "Fail Task" route keep in mind that this won't work if 
your playbook uses roles, in this case use a pre_tasks instead of a normal 
tasks.


On Friday, August 1, 2014 7:13:11 PM UTC+2, maticm1 wrote:
>
> How do you set up a confirmation prompt before running a playbook?
>
> I'd like to have to enter "YES" before the playbook makes any changes to 
> hosts. Right now I have the following code in site.yml, but it's not 
> working.
>
>   vars_prompt:
>   - name: "confirmation"
>     prompt: "Are you sure you want to run this playbook? Answer with 
> 'YES'"
>     default: "NO"
>     private: no
>     failed_when: "confirmation != YES"
>
>
>

-- 
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/600eb96a-95cd-46c1-ad9e-8293b97457b6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to