在 Ansible playbook 中,剧本作者通常会在任务完成后使用 file 模块来删除无用的文件。然而,如果任务中使用了 “changed” 关键字,这些文件将不会被删除。
为了解决这个问题,可以设置一个额外的任务来检查哪些参数文件需要删除,并删除它们。以下是一个示例代码:
- name: Remove parameter files
find:
paths: "{{ playbook_dir }}"
patterns: "*.params"
file_type: file
register: param_files
- name: Delete parameter files
file:
path: "{{ item.path }}"
state: absent
when: item.path is defined and item.path != ''
with_items: "{{ param_files.files }}"
该代码段会在指定的 playbook 目录中查找匹配 “*.params” 模式的所有文件,然后将它们放在 “param_files” 变量中。接下来,在一个名为 “Delete parameter files” 的任务中,我们遍历这个变量中的所有文件,并删除这些文件。
通过这个方法,我们就可以确保被删掉的无用文件和参数文件的数量是一致的。