On 29.09.2016 08:50, Rafał Radecki wrote:
I am currently trying to find a way to set a variable/fact on all hosts in
case a directory for a service will already exist on one of the play's
hosts. Basically:

# check if dir exists on all hosts and set service_home_dir_status on every
host
- name: check if service home dir already exists
  stat:
    path: "{{ service_home_dir }}"
  register: service_home_dir_status

# fail if the above dir already exists
- name: fail if service home dir already exists
  fail:
msg: "Home directory for service {{ service_home_dir }} already exists.
Please check the situation!"
  when: service_home_dir_status.stat.isdir is defined and
service_home_dir_status.stat.isdir

The problem with above code is that if for example I have a group of hosts: host1, host2, host3 and on host1 the directory already exists the second
step will only fail on host1 and succeed on host2 and host3.
Is there a way to maybe set a fact for all hosts in between these tasks if
the directory already exists on one of them?

To me it sound like you are trying to abort the play if one host fails,
if so you could use "any_errors_fatal: true" in the playbook.

https://docs.ansible.com/ansible/playbooks_error_handling.html#aborting-the-play

--
Kai Stian Olstad

--
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/985090eb5b5eba6b262048812fd4bafe%40olstad.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to