无法在Ansible中使用deb模块卸载软件包

问题描述 投票:1回答:1

今天我遇到了使用ansible并尝试卸载debian软件包的问题。该软件包不是来自存储库,而是直接来自.deb文件,因此,在Ansible中我定义了安装任务:

- name: install nomachine
  apt:
    deb: /root/{{ nomachine_package }}

哪个实际有效,包装安装在S.O.

但是,什么时候删除它:

- name: uninstall nomachine
  apt:
    deb: nomachine-enterprise-terminal-server
    state: absent

惊恐的事件:

fatal: [SERVER]: FAILED! => {"changed": false, "failed": true, "msg": "deb only supports state=present"}

我不是开发人员,但看看apt.py,似乎卸载过程仅适用于通过存储库安装的软件包? (它似乎验证了apt的缓存)。

因此,作为此卸载过程的解决方法,我正在做:

- name: uninstall nomachine
  shell: dpkg -r nomachine-enterprise-terminal-server

我正在使用ansible 2.3.0.0

也许我没有正确使用该工具或功能不可用。

感谢您提供的任何帮助。

H。

编辑:我认为我做得很好因为跟随the example of ansible

- name: Remove "foo" package
  apt:
    name: foo
    state: absent

对于那些想知道为什么“ - name”没有被定义的人来说,这是因为任务是一个处理程序。

ansible package uninstall deb
1个回答
2
投票

我是个傻孩子。在我最近在github上的“newbug”中看到的文档后,卸载软件包的语法各不相同,同一模块的使用差异很小(在我自己已经回答的问题中):

# WRONG
- name: uninstall nomachine
  apt:
    deb: nomachine-enterprise-terminal-server
    state: absent

# RIGHT
- name: Remove "foo" package
  apt:
    name: foo
    state: absent

deb - >名字!!只是为了卸载......对于安装包它仍然是“deb”。

Facepalm今天,体验明天。

© www.soinside.com 2019 - 2024. All rights reserved.