我正在使用Ansible将日志移动到备份目录(使用shell
模块,mv
命令)。
mv
命令将失败。
默认情况下,它会导致整个Ansible播放失败。
即使任务失败(ignore_errors: yes
)
我对此解决方案不满意,因为它会产生错误消息
任务[将文件移动到备份目录] ******************************************致命:[xx.xx.xx .xx]:失败了! = ...?没有这样的文件或目录“,”stdout“:”“,”stdout_lines“: [],“警告”:[]} ...忽略
如何在Ansible中检查目录是否为空,如果空jus跳过任务?
答案 0 :(得分:12)
您可以在ansible 2.0中使用find模块查找目录中扩展名为wget -q -O - https://raw.githubusercontent.com/opendaylight/odlparent/master/settings.xml > ~/.m2/settings.xml
的文件,然后在找到文件时执行move
.log
答案 1 :(得分:1)
已接受使用find
模块的答案。
另一个选项(可读性较低且更详细)是使用本机Linux命令 - test
ls
命令的结果
- name: "backup logs"
shell: test "$(ls /var/logs/)"
register: logsPresent
changed_when: false
- name: "move files to backup directory"
when: "logsPresent.rc != 0"
shell: "mv /var/logs/ /backup/logs"