我正在使用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