我试图创建一个Ansible playbook来检查目录列表,并过滤该列表只包含现有目录,并将该列表存储到变量(事实?)。除了存储已过滤的现有目录列表之外,我还想将第一个找到的现有目录存储到不同的变量中。
我在工作上遇到一些困难,觉得我觉得应该更难。有什么建议?
- hosts: all
vars:
my_dirs:
- "/a/"
- "/b/"
- "/c/"
tasks:
- name: Checking existing file name
stat:
path: "{{ item }}"
with_items: "{{ my_dirs }}"
register: check_file_name
- name: Set fact
set_fact:
existing_paths: "{{ item.stat.path }}"
with_items:
"{{ check_file_name.results }}"
when: item.stat.exists | default(False) | bool
答案 0 :(得分:1)
我认为你几乎可以使用它,但可能需要在剧本中进行一些更改,如下面的数组中收集的结果:
- set_fact: existing_paths="{{ [] }}" - name: Set fact set_fact: existing_paths: "{{ existing_paths +[item.stat.path] }}" with_items: "{{ check_file_name.results }}" when: item.stat.exists