Ansible读取列名含空格的CSV文件报错该如何处理?
Ansible读取含空格列名CSV的错误修正方案
你代码存在两处语法错误,修正后即可正常读取:
- 带空格列名的引用语法错误:Jinja2中访问包含空格等特殊字符的字典键时,不能同时使用
.和[],推荐使用方括号写法,兼容性更强:
错误写法:{{ item.['User name'] }}
正确写法:{{ item['User name'] }} - 循环参数未正确解析:Ansible的
loop参数需要传入Jinja2解析后的可迭代对象,必须用双大括号包裹注册的变量
以下是修正后的完整代码:
- name: 从CSV文件读取用户信息并保存为字典 read_csv: path: credentials.csv register: users delegate_to: localhost - name: 创建用户家目录 file: path: "/home/{{ item['User name'] }}" state: directory mode: '0755' loop: "{{ users.list }}"
额外说明:此处替换了原command调用mkdir的写法,改用Ansible原生file模块,符合幂等性要求,重复执行不会报错
内容的提问来源于stack exchange,提问作者markorial
相关产品推荐
相关产品推荐

