我正在使用chef file资源删除Windows机器中%systemroot%\system32path中的文件。 资源块如下,
file 'Delete_File' do path 'C:\\Windows\\System32\\my.dll' action :delete end
我已经确保在调用file资源块之前停止使用此dll Windows服务。
但是在chef-client运行结束时,文件仍然没有被删除。 所以,我假设一些访问权限设置完成这个工作。
任何指针都会有帮助。
我怀疑你在W2K8R2上使用32位版本的chef-client ,这是一个x64架构的操作系统。 在这种情况下,您的主机chef-client进程“看到”为%systemroot%\system32的目录实际上是%systemroot%\syswow64 。 我猜你的DLL不在那里被删除。
这已经在Opscode和这里描述的解决方法的票据中进行了讨论 ,引用%systemroot%\sysnative表示法可能是您可以做的最好的事情。