2017-06-09 21 views
-1

我有一個調用2個角色的可靠劇本。角色1在本地運行,其中有一個腳本,其中arg作爲文件路徑/tmp/inputfile/input.csv。該劇本的樣子:Ansible本地連接腳本參數路徑無法檢測

- 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 &第四步,我得到錯誤:

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的塔上運行這個工作我也試圖改變用戶,但沒有運氣。

+1

根據您在問題中發佈的代碼,我看不出「cat/tmp/input_dir/inputFile.csv」命令有效。您不創建該文件,因此它不存在。很明顯。 – techraf

回答

0

縮進看起來不正確:

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

縮進在粘貼到stackoverflow時得到了這樣的結果,否則evrything的語法是正確的。我正在從Ansible-tower服務器上運行劇本,然後只會出錯。如果我從服務器控制檯運行它相同的劇本,它運行良好。 – Niceha

+0

好的 - 你在帖子中如何修復縮進,我會刪除我的答案! – Jack

0

確定。所以經過多次閱讀後,我知道代碼是好的,因爲它從控制檯運行,但不是從Ansible塔,而是從其他目錄路徑進行交叉檢查。 Ansible塔實際上使用/ tmp/dir作爲暫存區,因此劇本中提到的任何更改/任務都將在tmp目錄中運行,不會影響。

將我的輸入文件路徑從/ tmp更改爲/ home/user爲我完成了這項工作。