I'm really puzzled by how a certain Ansible feature appears to work, and I 
can't figure out why anyone in the world would ever want it to work that 
way.  I hope that I'm just densely mis-interpreting how it works.

It seems that the *when:* attribute for the *include:* task doesn't 
actually constrain *when* the specified playbook is included.  Rather, the 
specified playbook is *always* included, and *every* task within the 
playbook is executed, with the original *when:* clause applied to the task.

This doesn't make any sense whatsoever.  I cannot think of a single use 
case for this.

On the one hand, if *when:* evaluates to *false*, then every task within 
the playbook will be skipped.  If it evaluates to *true*, every task within 
the playbook will be executed.  That sounds like a really stupid 
alternative to only including the playbook when *when:* evaluates to *true*. 
 In fact, this implementation actually prevents us from conditionally 
including a playbook only if it hasn't been included before, which seems 
like a really useful feature in general, and one of the strategies I was 
hoping to use in order to compensate for Ansible's really terrible lack of 
composable language constructs.

What am I missing?

-- 
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/4e0f8c0d-b1d2-4244-ad58-326be9fcdc0f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to