在Ansible v2.8.2中,如何搜索目录树的子集,例如“ home / ansible”?
我尝试使用查找模块:
- name: Find ansible directory
become: true
find:
paths: /
recurse: yes
file_type: directory
use_regex: yes
patterns: 'home/ansible'
register: ansible_dirs
- name: post ansible dirs
debug:
msg:
- "{{ ansible_dirs }}"
我收到错误消息:/proc/20828/task/20828/fd/6 was skipped as it does not seem to be a valid file or it cannot be accessed
如果我将模式更改为“家”或“可使用”,则可以,但是我需要的结果更多。
我想我可以采用更大的结果集并将其缩减为所需的值,但是我希望可以使用一种现成的方法。
非常感谢您的帮助!
答案 0 :(得分:0)
认为find模块进行基本搜索。因此,它无法通过权限限制来访问所有内容,或者将永远占用非常大的已安装网络存储。
因此,限制搜索可能会有所帮助。
如果您只想测试特定路径是否存在(尚未测试目录是否像文件一样工作):
- name: Wait until the file /tmp/foo is present before continuing
wait_for:
path: /tmp/foo
或者您可以排除您不希望发现的路径:
排除您在查找模块中查找的选项。
- name: Find /var/log all directories, exclude nginx and mysql
find:
paths: /var/log
recurse: no
file_type: directory
excludes: 'nginx,mysql'
代码提取来自Ansible文档示例。