windows - Ansible - win_file 模块 - 如果文件正在使用,则强制删除
问题描述
我们使用 ansible win_file 模块删除 Windows Server 机器中的特定文件夹,代码如下:
- name: Delete <folderName> directory
win_file: path=C:\<pathToFolder>\{{target_environment}}\<folderName> state=absent
tags: <folderName>
问题:当 ansible 角色运行的同时该目录中的文件在另一个程序中打开时,它会失败说:
- “该进程无法访问该文件,因为它正被另一个进程使用”
现在,我理解了这个错误,但我正在寻找强制删除的建议,即使文件正在使用中,或者如果有其他我不知道的模块无法解决这个问题。
(目前使用ansible 2.4.6)
解决方案
所以,经过一番搜索和挖掘,我想出了一个解决方案,我找到了一个类似的 ansible 模块,可以完成这项工作,win_shell。
我用以下代码解决了这个问题:
name: Delete <folderName> directory
win_shell: Remove-Item –path <folderName> –recurse -force
args:
chdir: C:\<pathToFolder>\{{target_environment}}
removes: C:\<pathToFolder>\{{target_environment}}\<folderName>
tags: <folderName>
- 删除:检查文件夹是否存在,否则跳过任务
- 强制:做我想要的伎俩,删除文件夹和他的所有文件,即使某些文件正在使用或在任何程序中打开。
推荐阅读
- yii2 - 如何将kartik yii2-export与数组类型的模型一起使用
- mongodb - mongodb.core.ExecutableFindOperation 无法解决
- mysql - 在 MySql 中,如何根据一列进行分组并对其他列进行汇总?
- java - 从字符串中的数组中查找内容
- python - Python Conv 神经网络推理功能问题
- hadoop - 在配置单元的“插入覆盖”动态分区查询中设置分区位置
- css - 让 2 个元素与 flexbox 共享同一行
- instagram - Instagram 待审核时间过长
- python - 使用python中的socket()在adhoc网络中广播hello消息
- bluetooth - 如何通过蓝牙将传感器数据发送到安卓手机?