无法使用ansible unarchive模块创建目录路径?

无法使用ansible unarchive模块创建目录路径?,ansible,Ansible,我正在尝试下载并提取远程计算机中的tar存档,如果不存在,则必须创建远程目标。但事实并非如此 错误:目标目录不存在 霉菌代码: - unarchive: src: http://apache.mirrors.ionfish.org/tomcat/tomcat-8/v8.5.15/bin/apache-tomcat-8.5.15.tar.gz dest: /opt/tomcat/ creates: yes remote_src: True 注: *以root用户

我正在尝试下载并提取远程计算机中的tar存档,如果不存在,则必须创建远程目标。但事实并非如此

错误:目标目录不存在

霉菌代码:

- unarchive:
    src: http://apache.mirrors.ionfish.org/tomcat/tomcat-8/v8.5.15/bin/apache-tomcat-8.5.15.tar.gz
    dest: /opt/tomcat/
    creates: yes
    remote_src: True 
注: *以root用户身份运行该剧


在使用非归档模块时,请提前感谢,dest路径应该是指向现有目录的路径,creates应该是指向文件的路径,而不是布尔值

- name: ensure tomcat directory exists
  file:
    path: /opt/tomcat
    state: directory

- unarchive: 
    src: http://apache.mirrors.ionfish.org/tomcat/tomcat-8/v8.5.15/bin/apache-tomcat-8.5.15.tar.gz
    dest: /opt/tomcat/  # already existing path
    creates: /opt/tomcat/config  # some path to make sure that the archive has already been unpacked
    remote_src: yes

为什么您认为应该创建目录?
creates:
不是字面意思。检查一下<代码>创建:作业不是创建新的目录树或路径;它用作条件检查点,仅当某个文件不存在时才执行任务。另请参阅couterpart,
删除:
。hi@deepak我刚刚指定了dest:/opt creates:/opt/tomcat。但它并没有在其中创建tomcat目录。它直接将文件解压缩到回答中提到的/opta中,dest应该是一个现有路径。在取消归档之前,必须先创建目录。更新了答案Yes@deepak。。我完全理解你的观点。这就是为什么我将“dest”改为/opt,这在linux中一直存在。然后我编写了creates:/opt/tomcat。因此,根据您的回答,它应该创建tomcat目录。对??不@Harish.K,我认为tux意味着你必须使用“文件”模块来创建opt和tomcat。您根本不会在unarchive中使用creates,因为它不用于目录。