如果给定目录不为空,如何执行Ansible任务?

Bar*_*cki 7 ansible ansible-playbook

我使用Ansible将日志移动到备份目录(使用shell模块,mv命令).

mv如果没有要移动的文件,命令将失败.默认情况下,它会导致整个Ansible播放失败.我可以继续游戏,即使任务失败(ignore_errors: yes)

我对此解决方案不满意,因为它会产生错误消息

任务[将文件移动到备份目录]******************************************致命:[xx.xx.xx.xx]:失败!= ...?没有这样的文件或目录","stdout":"","stdout_lines":[],"警告":[]} ...忽略

如何在Ansible中检查目录是否为空,如果空jus跳过任务?

Nas*_*asr 12

您可以使用ansible 2.0中的find模块查找目录中包含.log扩展名的文件,然后在找到文件时执行move

- find: paths=DIRECTORY file_type=directory patterns="*.log"
  register: dir_files

- shell: mv *.log /tmp
  when: dir_files.matched|int != 0
Run Code Online (Sandbox Code Playgroud)