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
我有一个角色 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