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