2017-09-15 124 views
0

這是我的任務。它基本上將文件取消存檔到dest目錄/ usr/local/hadoop中。ansible unarchive using created created not working as expected if

Hadoop的文件夾中是不存在的,我得到這個錯誤 -

錯誤: - 你必須與你的任務的一些語法問題

fatal: [default]: FAILED! => {"changed": false, "failed": true, "msg": "dest 'dest=/usr/local/ creates=/usr/local/hadoop copy=no' must be an existing dir"} 





- name: Unarchive a file 
    unarchive: 
    src: /home/hduser/hadoop-2.7.1.tar.gz 
    dest: dest=/usr/local/ creates=/usr/local/hadoop copy=no 
    remote_src: yes 

回答

0

。您不能將傳統的key=value語法與YAML語法組合在一起。特別是,這條線......

dest: dest=/usr/local/ creates=/usr/local/hadoop copy=no 

...只是路過一個很長的字符串到dest關鍵。你想:

- name: Unarchive a file 
    unarchive: 
    src: /home/hduser/hadoop-2.7.1.tar.gz 
    dest: /usr/local/ 
    creates: /usr/local/hadoop 
    copy: no 
    remote_src: yes 
+0

感謝它的工作。更改後,文件被提取並複製到文件夾hadoop-2.7.1而不是hadoop。不應該創建文件夾'hadoop'並將其解壓。 – user1050619

+0

它將簡單地將'/ home/hduser/hadoop-2.7.1.tar.gz'的內容解壓縮。如果它包含'hadoop-2.7.1',那就是你將要得到的。 – larsks