Ansible local_action:stat没有find我的文件

我想复制一个文件到远程节点,但只有当文件存在。 我将它复制到/tmp/webapps/partner.war

我的任务是:

- local_action: stat path="/tmp/webapps/{{ application }}.war" register: war - name: Copy warfile copy: src=/tmp/webapps/{{ application }}.war dest=/tmp/deploy/{{ stage }}/{{ application }}.war when: war.stat.exists == true 

但统计总是告诉我,该文件不存在。 如果我手动运行统计,它显示我的文件在那里。

结果:

  TASK: [deploy | stat path="/tmp/webapps/{{ application }}.war"] *************** <127.0.0.1> REMOTE_MODULE stat path="/tmp/webapps/partner.war" <127.0.0.1> EXEC ['/bin/sh', '-c', 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1433920640.68-144173277081367 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1433920640.68-144173277081367 && echo $HOME/.ansible/tmp/ansible-tmp-1433920640.68-144173277081367'] <127.0.0.1> PUT /tmp/tmpzrV_Ne TO /var/lib/awx/.ansible/tmp/ansible-tmp-1433920640.68-144173277081367/stat <127.0.0.1> EXEC ['/bin/sh', '-c', u'LANG=C LC_CTYPE=C /usr/bin/python /var/lib/awx/.ansible/tmp/ansible-tmp-1433920640.68-144173277081367/stat; rm -rf /var/lib/awx/.ansible/tmp/ansible-tmp-1433920640.68-144173277081367/ >/dev/null 2>&1'] ok: [example.com -> 127.0.0.1] => {"changed": false, "stat": {"exists": false}} 

我做错了什么? :/

Ansible塔使用PRoot提供一个很酷的界面来创buildchroot和类似的监狱。 他们在塔文件中指出:

3.5。 由于PRoot问题,手册缺less对必要数据的访问

当运行在某些禁止的目录中读取和写入信息的手册时,用户可能会遇到PRoot的问题。 PRoot在chroot监狱里运行ansible ansible-playbook命令。 在这样的情况下,正在运行的剧本不能看到其他剧本或磁盘上的敏感数据,如果剧本希望能够访问这些信息,就会出现问题。 为了调整您对PRoot的使用,可以设置一些variables:

 # Enable proot support for running jobs (playbook runs only). AWX_PROOT_ENABLED = False # Command/path to proot. AWX_PROOT_CMD = 'proot' # Additional paths to hide from jobs using proot. AWX_PROOT_HIDE_PATHS = [] # Additional paths to show for jobs using proot. AWX_PROOT_SHOW_PATHS = [] 

FWIW,当我尝试在angular色的“文件”目录中查找文件时,遇到了类似的问题(不涉及塔)。 我通常会将这些引用为“../files/something”,但对于local_action统计信息不起作用。 相反,这工作:

 - name: check for optional config file local_action: stat path={{ role_path }}/files/{{ inventory_hostname }}/some_file register: optional_file 

(所以我猜这个故事的寓意是:使用本地文件的完整path)