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.