ansible - 如果文件存在,请不要运行 ansible 命令
问题描述
我正在尝试制作一个仅在文件不存在时才运行命令的剧本。我的挑战是文件名的一部分是随机创建的。我试过类似的东西:
- 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 }}"
但是我的文件总是生成的,即使存在其他文件。
解决方案
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”的方式来完成第一项任务,但你明白了
推荐阅读
- .net - 在 ForEachAsync 中使用 Task.Run 可以吗?
- mule - 在 1 次调用中检索多个 AWS 机密管理器
- javascript - 将特定日期转换为悉尼时区
- sql - mysql插入多个表
- c# - 如果 TextBox 宽度大于 75,如何删除最后输入的字符
- xlsxwriter - 将默认 Excel 格式分配给单元格
- solr - solr stats 错误:无法在没有 docValues 的情况下计算 PointField 上的统计信息
- java - Mockito - InjectMocks 或如何在方法调用后获取新值
- node.js - 如何在没有 NPM 的情况下离线提供用 React 编写的静态网站?
- javascript - Nuxt.js 代码在从数组计算数据时给出 NaN 错误