Ansible控制器拉取文件后提示不存在:No such file or directory问题求助
问题
我的Playbook包含从Windows共享驱动器拉取文件的任务,运行在localhost:
- name: Fetch file fetch: src: \\10.14.2.130\shared\folder\Data\users.csv dest: /var/lib/awx/projects/Windowsfile/ flat: yes delegate_to: 10.12.201.60 become: yes become_method: runas become_user: SYSTEM - name: Initialise data list set_fact: data_list: [] - name: Read input file read_csv: path: users.csv key: FirstName fieldnames: FirstName,LastName,EmailAddress,Mobile delimiter: ',' register: userdata
在终端控制台运行该Playbook时可成功执行,但在Ansible控制器(AWX)上运行时出现以下错误:
TASK [Create_from_csv : Fetch file] ******************************************** changed: [localhost -> 10.12.201.60] => {"changed": true, "checksum": "ff94f775fdd699d9a5f9c9026ce187030cf4c4d5", "dest": "/var/lib/awx/projects/Windowsfile/users.csv", "md5sum": "a05583cd02cf2e06c8b51c7d7e2f5284", "remote_checksum": "ff94f775fdd699d9a5f9c9026ce187030cf4c4d5", "remote_md5sum": null} TASK [Create_from_csv : Initialise data list] ********************************** ok: [localhost] => {"ansible_facts": {"data_list": []}, "changed": false} TASK [Create_from_csv : Read input file] *************************************** fatal: [localhost]: FAILED! => {"changed": false, "msg": "Unable to open file: [Errno 2] No such file or directory: 'users.csv'"}
从日志可见文件已成功拉取到控制器的/var/lib/awx/projects/Windowsfile/users.csv路径,但read_csv任务找不到该文件,该如何解决?
解决方法
1. 使用绝对路径指定文件位置
read_csv任务里的path用绝对路径代替相对路径,因为AWX运行Playbook的工作目录并非文件存放目录:
- name: Read input file read_csv: path: /var/lib/awx/projects/Windowsfile/users.csv key: FirstName fieldnames: FirstName,LastName,EmailAddress,Mobile delimiter: ',' register: userdata
2. 动态获取文件路径(更灵活)
如果不想写死路径,可以借助Ansible内置变量playbook_dir(指向当前Playbook所在目录)来动态拼接路径,适配项目路径变化:
- name: Read input file read_csv: path: "{{ playbook_dir }}/Windowsfile/users.csv" key: FirstName fieldnames: FirstName,LastName,EmailAddress,Mobile delimiter: ',' register: userdata
3. 确认并调整文件权限
确保AWX运行用户(通常为awx或root)对目标文件及目录拥有读权限,必要时添加权限调整任务:
- name: Ensure file is readable by AWX file: path: /var/lib/awx/projects/Windowsfile/users.csv mode: '0644' owner: awx group: awx
内容的提问来源于stack exchange,提问作者Blitzden
相关产品推荐
相关产品推荐

