Ansible - 仅限定义路径的目标

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 }}" 
+0

是啊!有用。 #赢得 – Kevin