我试图做一个剧本,仅在文件不存在时才在其中运行命令。我的挑战是文件名的一部分是随机创建的。我尝试过类似的事情:
- name: Generate file
command: <command> "{{ item.name }}"
chdir: "{{ target_zone_dir }}"
creates:
- "{{ target_zone_dir }}/K{{ item.name }}.+[0-9][0-9][0-9]+[0-9][0-9][0-9][0-9][0-9].key"
- "{{ target_zone_dir }}/K{{ item.name }}.+[0-9][0-9][0-9]+[0-9][0-9][0-9][0-9][0-9].private"
check_mode: no
with_items:
- "{{ target_zone_domains }}"
但是即使存在其他文件,我的文件也已生成。
答案 0 :(得分:1)
CiroRa所说的大部分都是正确的,区别在于它不必像零文件一样黑白。
- command: /bin/ls -1
args:
chdir: "{{ target_zone_dir }}"
register: target_files
- when: not target_files.stdout is search("K"+item.name+".+[0-9]*.(key|private)")
with_items: "{{ target_zone_domains }}"
我敢肯定,有更多的“ ansible-y”方式可以完成第一个任务,但是你会明白的