2016-11-15 71 views
0

在這裏打破我的大腦。有一個我想解決的小問題。 我的目標是在兩個不同的文件夾中刪除超過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 

回答

0

有一種更好的方式:

- 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