我正在使用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
我不能简单地删除webapps文件夹,因为我不想删除其中的其他文件和文件夹。我想减少任务数量,因为我正在使用Duo push auth,这增加了部署时间。我已尝试循环遍历文件和文件全局但由于某种原因它永远不会工作。
http://docs.ansible.com/ansible/latest/playbooks_loops.html#looping-over-files
答案 0 :(得分:10)
简单地迭代这两个值:
tasks:
- name: Removing
file:
path: "{{ item }}"
state: absent
with_items:
- /usr/share/tomcat/webapps/app.war
- /usr/share/tomcat/webapps/app
但它仍会创建2个任务执行:每个项目一个。
答案 1 :(得分:2)
如果您只想删除目录及其内容,只需使用文件模块并将路径仅传递到目录:
tasks:
- name: Removing
file:
path: /usr/share/tomcat/webapps/app
state: absent
请参阅此帖子:Ansible: How to delete files and folders inside a directory?
来自ansible docs:
如果不存在,将递归删除目录,并取消链接文件或符号链接。