Ansible如何检查缓冲区中是否存在文件
我有一个角色a,它将文件提取到缓冲区,如下所示。现在我有了另一个角色B,如果文件存在于缓冲区中,它必须将文件复制到DB服务器。如何检查主缓冲区中是否存在文件 角色AAnsible如何检查缓冲区中是否存在文件,ansible,devops,ansible-2.x,ansible-facts,Ansible,Devops,Ansible 2.x,Ansible Facts,我有一个角色a,它将文件提取到缓冲区,如下所示。现在我有了另一个角色B,如果文件存在于缓冲区中,它必须将文件复制到DB服务器。如何检查主缓冲区中是否存在文件 角色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 t
- 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
不确定您的具体要求是什么,但您是否考虑过将
委托给:localhost
在localhost上运行该特定任务(我相信您称之为此主机?)您可以将忽略\u错误:是的放在任务上吗?谢谢Jbone,localhost工作正常。不知道怎么会错过这个简单的