如何仅在文件或目录不存在时运行ansible任务?
在Ansible playbook中,如果目录不存在,我希望运行任务如何仅在文件或目录不存在时运行ansible任务?,ansible,ansible-playbook,Ansible,Ansible Playbook,在Ansible playbook中,如果目录不存在,我希望运行任务 - name: Check for java exists in /opt stat: path=/opt/jdk1.8.0_71 register: p when: p.stat.isdir is defined and p.stat.isdir 但是,我必须做些什么来确保仅当此目录不存在时才运行以下任务 - name: Extract java if dir not existing comma
- name: Check for java exists in /opt
stat: path=/opt/jdk1.8.0_71
register: p
when: p.stat.isdir is defined and p.stat.isdir
但是,我必须做些什么来确保仅当此目录不存在时才运行以下任务
- name: Extract java if dir not existing
command: tar xzf /tmp/jdk1.8.0_71 chdir=/opt
这就是
所创建的
参数的完美用途:
- name: Extract java if dir not existing
command: tar xzf /tmp/jdk1.8.0_71
args:
chdir: /opt
creates: /opt/jdk1.8.0_71
Ansible将检查/opt/jdk1.8.071
是否存在,并且仅在不存在时运行该命令
文档:如果我需要在该命令之前下载/tmp/jdk1.8.0_71,并且希望此任务也取决于/opt/jdk1.8.0_71是否存在,该怎么办?更新的链接(作为注释发布,因为建议的编辑队列已满):您能解释一下这是如何工作的吗?不清楚
p
或stat
指的是什么。@bonh请看问题。它有你想要的一切。对不起!谢谢,我需要喝更多的咖啡。我刚刚用过这个,但必须检查Ansible 2.7.5中是否存在p.results.stat
- name: Extract java if dir not existing
command: tar xzf /tmp/jdk1.8.0_71
args:
chdir: /opt
creates: /opt/jdk1.8.0_71