-1

我有一个调用 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 步和第 4 步我得到错误:

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 的塔运行这项工作我也尝试更改用户但没有运气。

4

2 回答 2

0

好的。因此,经过大量阅读,我知道代码很好,因为它是从控制台运行的,而不是从 Ansible 塔运行的,只是为了交叉检查它从其他目录路径运行。Ansible Tower 实际上使用 /tmp/ 目录作为暂存区,因此剧本中提到的要在 tmp 目录中运行的任何更改/任务都不会生效。

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

于 2017-06-11T06:36:45.560 回答
0

缩进看起来不正确:

- name: Copy script to local
  copy:
     src: files/csv_to_files.sh
     dest: /tmp/input_dir/
     mode: 0777
于 2017-06-09T20:50:09.427 回答