我想列出父目录中的所有子目录,然后将每个目录名称用作ansible中的单独变量以进行进一步操作。
答案 0 :(得分:0)
请记住,通常无法将文件名用作Ansible变量。文件名可以包含字符,这些字符在变量名中是非法的。
还要记住,文件可以与已定义的变量具有相同的名称。最好在变量前添加前缀以避免冲突。
以下示例筛选有效文件名,并为变量名称添加前缀。
---
- hosts: test1
tasks:
- find:
path: /etc
file_type: file
use_regex: yes
patterns: "^[a-zA-Z0-9_]+$"
recurse: no
register: files
- set_fact:
"my_{{ item | basename }}": "{{ item }}"
with_items: "{{ files.files | map(attribute='path') | list }}"
- debug: var=my_passwd
- debug: var=my_hosts