Ansible:如何在单个任务中删除目录中的文件夹和文件?

Har*_*rel 8 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/app
      state: absent
Run Code Online (Sandbox Code Playgroud)

我不能简单地删除webapps文件夹,因为我不想删除其中的其他文件和文件夹.我想减少任务数量,因为我正在使用Duo push auth,这增加了部署时间.我试过循环文件和文件globs但由于某种原因它永远不会工作.

http://docs.ansible.com/ansible/latest/playbooks_loops.html#looping-over-files

zig*_*arn 13

只需迭代这两个值:

tasks:
  - name: Removing
    file:
      path: "{{ item }}"
      state: absent
    with_items:
      - /usr/share/tomcat/webapps/app.war
      - /usr/share/tomcat/webapps/app
Run Code Online (Sandbox Code Playgroud)

但它仍将创建2个任务执行:每个项目一个.


小智 5

如果您只想删除目录及其内容,只需使用文件模块并将路径传递给目录:

tasks:
 - name: Removing
   file:
     path: /usr/share/tomcat/webapps/app
     state: absent
Run Code Online (Sandbox Code Playgroud)

请参阅此帖子:Ansible:如何删除目录中的文件和文件夹?

并来自 ansible 文档:

如果不存在,目录将被递归删除,文件或符号链接将被取消链接。

请参阅:http : //docs.ansible.com/ansible/latest/file_module.html