我编写了一个简单的手册来从运行windows10的虚拟机(VM)卸载firefox。我是ansible / chocolatey的新手,所以这里是代码:
- name: Test win_chocolatey module
hosts: win1
tasks:
- name: Uninstall firefox
win_chocolatey:
name: firefox
state: absent
在我的机器上执行此代码之后,在Windows VM上安装的巧克力软件包中不再出现firefox。但是仍然安装了firefox,它在Windows VM上运行正常。
我查找了卸载命令的ansible文档,我找到了一个注释:
“....只有当软件包维护者提供了mockyUninstall.ps1脚本时,choco uninstall才会从系统中删除软件包。”
所以,我修改了我之前的剧本,以便包含我下载的powershell脚本(https://github.com/Iristyle/ChocolateyPackages/blob/master/HipChat/tools/chocolateyUninstall.ps1):
- name: Test win_chocolatey module
hosts: win1
tasks:
- name: Run PS script
script: /home/ansible_example/chocolateyUninstall.ps1
- name: Uninstall firefox
win_chocolatey:
name: firefox
state: absent
我的Windows VM仍然没有使用firefox。 我使用的是ansible 2.0.0.2,chocolatey 0.9.9.11
有任何帮助吗?谢谢
答案 0 :(得分:2)
Chocolatey.org上的每个软件包都需要它自己的chocolateyUninstall.ps1文件。您无法使用其他软件包的chocolateyUninstall.ps1文件,并希望它能够卸载另一个软件包,而这根本不是它的工作原理。
正如您所看到的here,Chocolatey.org上的Firefox软件包确实没有卸载文件,因此,ansible无法调用它。
你可能想要尝试的是使用" new" Chocolatey中提供的自动卸载功能。您可以使用以下方法找到有关此内容的更多信息:
choco feature -h
启用该功能后,再次安装Firefox,然后尝试卸载它,看看是否有所需的结果。
此外,在等式中没有ansible可能值得测试。用Chocolatey直接测试它,确保它有效,然后加入ansible。