This was also throwing me off, it would be nice if there was a way around 
it as well.

Even though the logic is working and node1 stops after the check, the block 
output displays the same msg for all hosts. I would have thought that this 
would only show the msg for node1 as thats the node thta meets the end_host 
check. Node2 continues to run all other checks but the message is confusing 
as it first looks like its skipping both hosts but its really not.

TASK [end play for host host if nothing to upgrade] 
****************************
ok: [node1.test.com] => {
    "msg": "Nothing to upgrade, ending play for host"
}
ok: [node2.test.com] => {
    "msg": "Nothing to upgrade, ending play for host"
}



On Friday, September 13, 2019 at 12:13:15 PM UTC-5, Damon Powell wrote:
>
> Both end_host and end_play seem to both cause the job to skip all hosts. I 
> know that only one host meets the condition so it should execute on 1 but 
> exits for both. Am I missing something? I thought end_host would only end 
> the play for the host that meets the when condition.
>
>
>   tasks:
>     - name: Pre java-1.8.*-openjdk package check
>       raw: rpm -qa java-1.8.*-openjdk | wc -l
>       register: package_precheck
>
>     - block:
>         - name: "end play for host host if nothing to upgrade"
>           debug:
>             msg: "nothing to upgrade, ending play for host"
>
>         - meta: end_host
>           when: package_precheck.stdout > 0
>
>
>

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/42857a4c-3546-491b-a07e-63f8828c5c53%40googlegroups.com.

Reply via email to