Ansible本地连接脚本参数路径无法检测

时间:2017-06-09 20:14:10

标签: ansible ansible-2.x localconnection ansible-tower

我有一个可以调用2个角色的ansible剧本。角色1在本地运行,其中有一个脚本,其中arg为文件路径/tmp/inputfile/input.csv。该剧本看起来:

- hosts: "{{my_extra_var_IP}}"
  connection: local
  roles:
   - prereq

角色任务:

- name: Copy script to local
  copy:
   src: files/csv_to_files.sh
   dest: /tmp/input_dir/
   mode: 0777

- command: ls -ltr /tmp/input_dir

- command: cat /tmp/input_dir/inputFile.csv

#- name: run csv to yml script
#  script: /tmp/input_dir/csv_to_files.sh /tmp/input_dir/inputFile.csv
#  become_user: niceha

前2个任务的输出是成功的,并且正如预期的那样,但是在第3和第3个任务中。第四步我得到错误:

FAILED! => {"changed": true, "cmd": ["cat", "/tmp/input_dir/inputFile.csv"], "delta": "0:00:00.007141", "end": "2017-06-09 15:53:58.673450", "failed": true, "rc": 1, "start": "2017-06-09 15:53:58.666309", "stderr": "cat: /tmp/input_dir/inputFile.csv: No such file or directory", "stdout": "", "stdout_lines": [], "warnings": []}

我在使用userA的塔上运行这个工作我也试图改变用户但没有运气。

2 个答案:

答案 0 :(得分:0)

缩进看起来不正确:

- name: Copy script to local
  copy:
     src: files/csv_to_files.sh
     dest: /tmp/input_dir/
     mode: 0777

答案 1 :(得分:0)

确定。因此,经过多次阅读后,我知道代码很好,因为它从控制台运行而不是从Ansible塔运行,只是交叉检查它是从其他目录路径工作。 Ansible塔实际上使用/ tmp / dir作为暂存区域,因此在tmp目录中运行的任何更改/任务都不会生效。

将我的输入文件路径从/ tmp更改为/ home / user为我做了工作。