Ansible如何检查缓冲区中是否存在文件

Ansible how to check a file exists in buffer

我有一个角色 A,它正在获取一个文件进行缓冲,如下所示。现在我有另一个角色 B,如果文件存在于缓冲区中,它必须将文件复制到数据库服务器。我如何检查文件是否存在于主缓冲区中?

角色A

  - name: fetch the log to buffer from app servers
    fetch: src=/tmplogs/script.log dest=buffer/ flat=yes # To ./playbooks/buffer

角色B

- name: Copy log from buffer to db server
  block:
  - name: Check if log exists in buffer
    stat:  path=buffer/.log
    register: script_buffer

  - name: Copy log from buffer to db servers
    copy: src=buffer/script.log  dest=/opt/script.log
    when: script_buffer.stat.exists

我不能在这里使用 stat,因为它在远程主机上运行。如何实现?

您的想法是正确的,但是您需要 运行 本地主机上的 stat 模块,而不是远程主机上的模块:

  - name: Check if log exists in buffer
    delegate_to: localhost
    stat:
      path: buffer/.log
    register: script_buffer