Ansible:如何在单个任务中删除目录中的文件夹和文件?
我正在使用Ansible 2.3.2.0,试图在一个任务中删除目录中的文件和文件夹 现在我有这个Ansible:如何在单个任务中删除目录中的文件夹和文件?,ansible,Ansible,我正在使用Ansible 2.3.2.0,试图在一个任务中删除目录中的文件和文件夹 现在我有这个 tasks: - name: Removing existing war file: path: /usr/share/tomcat/webapps/app.war state: absent - name: Removing existing folder file: path: /usr/share/tomcat/webapps/a
tasks:
- name: Removing existing war
file:
path: /usr/share/tomcat/webapps/app.war
state: absent
- name: Removing existing folder
file:
path: /usr/share/tomcat/webapps/app
state: absent
我不能简单地删除webapps文件夹,因为我不想删除其中的其他文件和文件夹。我想减少任务数量,因为我使用Duo push auth,这会增加部署时间。我尝试过在文件和文件全局上循环,但由于某些原因,它从来都不起作用
只需迭代两个值:
tasks:
- name: Removing
file:
path: "{{ item }}"
state: absent
with_items:
- /usr/share/tomcat/webapps/app.war
- /usr/share/tomcat/webapps/app
但它仍将创建两个任务执行:每个项目一个。如果您只想删除目录及其内容,只需使用文件模块并仅传递目录路径:
tasks:
- name: Removing
file:
path: /usr/share/tomcat/webapps/app
state: absent
见此帖:
从ansible文档中:
如果不存在,目录将被递归删除,文件或符号链接将被取消链接
请参阅:问题是我不想删除目录中的所有文件。我只想删除其中的一个文件和一个目录。。app.war和app在webapps中处于同一级别。。我应该仔细看看。很抱歉那么@zigarn的答案是正确的。与_项一起使用可在要删除的路径上循环。