下面是一个使用Ansible循环遍历目录并在另一个playbook中引用文件的示例代码:
假设有一个名为main.yml
的playbook,用于循环遍历目录并在另一个playbook中引用文件:
---
- name: 循环遍历目录
hosts: localhost
tasks:
- name: 查找文件
find:
paths: /path/to/directory
file_type: file
register: files_found
- name: 在另一个playbook中引用文件
include: another_playbook.yml
with_items: "{{ files_found.files }}"
loop_control:
loop_var: file
在上面的示例中,find
模块用于查找指定目录下的文件,并将结果存储在files_found
变量中。然后,使用include
模块来引用另一个playbook,并使用with_items
和loop_control
来循环遍历files_found.files
列表,并将每个文件作为file
变量传递给另一个playbook。
然后,可以在another_playbook.yml
中使用file
变量来操作每个文件。以下是another_playbook.yml
的示例代码:
---
- name: 在另一个playbook中操作文件
hosts: localhost
tasks:
- name: 打印文件路径
debug:
msg: "{{ file.path }}"
在上面的示例中,debug
模块用于打印文件的路径。你可以根据需要在another_playbook.yml
中执行其他任务。
请注意,上述示例中的目录路径/path/to/directory
应根据实际情况进行替换。
上一篇:Ansible: 循环包含的文件