如何在子元素存在时才执行Ansible任务?
解决方案
首先修正任务里的两个关键问题:
- 变量中用户的名称字段是
name,但任务里误用了username,需要统一为item.0.name with_subelements默认会对缺失指定子元素的条目抛出错误,需添加skip_missing: yes参数来自动跳过无directory的用户条目
修正后的完整任务代码如下:
- name: create custom data directories file: state: directory path: "{{ item.0.name }}/data/{{ item.1 }}" mode: "0700" owner: "{{ item.0.name }}" group: "{{ item.0.group }}" with_subelements: - "{{ var.user }}" - directory - skip_missing: yes
说明
skip_missing: yes是with_subelements的可选参数,开启后会自动忽略父元素中不存在指定子元素的条目,无需额外添加when条件- 确保变量引用和字段名一致,避免因字段名不匹配导致的路径或权限错误
内容的提问来源于stack exchange,提问作者Lithilion
相关产品推荐
相关产品推荐

