Ansible: Kick off playbook ONLY if a certain directory contains any files.

20 views
Skip to first unread message

David Searle

unread,
Oct 12, 2017, 5:34:17 AM10/12/17
to Ansible Project
Hi all,

I am fairly new to ansible but have been googling around for the answer to this and just cannot find anything that matches my request. So I wonder if you can assist please??


Basically I have a very long playbook to build an environment and set permissions etc etc etc and I have been instructed that at the very beginning of the PB I need to set a condition that IF a certain directory already contains files (any files at all) then the PB should exit, else it should continue with the rest of the installation and other bits.

How on earth do I do that sort of thing?? I just cannot see a module that helps me apart from it something that checks that the directory exists which is not what I want.

Thanks for any constructive input.


Goetz Leupold

unread,
Oct 12, 2017, 6:24:08 AM10/12/17
to Ansible Project

With 2 to 3 tasks i guess:


  - name: Find files in {{ path }}
    find:
      paths: "{{ path }}"
      patterns: '*.*'
    register: foundFiles


   - meta: end_play
     when: foundFiles.matched > 0

Optionally you could insert a debug msg task between these two, to write sth. like "ending play".

David Searle

unread,
Oct 12, 2017, 6:27:03 AM10/12/17
to Ansible Project
Wow new modules I have not used before. I shall test that out. 

Thank you so much for your input.
Reply all
Reply to author
Forward
0 new messages