Ansible - 仅限定义路径的目标
问题描述:
在这里打破我的大脑。有一个我想解决的小问题。 我的目标是在两个不同的文件夹中删除超过8天的文件。我的代码:Ansible - 仅限定义路径的目标
- name: check for files
find:
paths: "{{ item }}"
age: 8d
with_items:
- /var/log/glusterfs
- /var/log/glusterfs/bricks
register: deleteold
- debug: var=deleteold.results[1].files[0].path
- name: remove files older than 8 days
file:
path: "{{ item.files[0].path }}"
state: absent
with_items: "{{ deleteold.results }}"
# when: ???
通过这种方式,Ansible可以将正确的文件“存储”到目标文件中。 但是,如果没有文件存在,它会给出错误。因为没有定义变量。
什么when
声明应该只用于删除目标文件。
为了便于学习:
创建一个文件,该文件是旧的 - >触摸-d 20161010 test.log中 和调试:
- debug: var=deleteold.results[1].files[0].path
答
有一种更好的方式:
- find:
paths:
- /var/log/glusterfs
- /var/log/glusterfs/bricks
age: 8d
register: old_files
- file:
path: "{{ item.path }}"
state: absent
with_items: "{{ old_files.files }}"
是啊!有用。 #赢得 – Kevin