簡體   English   中英

無法使用Ansible中的deb模塊卸載軟件包

[英]Unable to uninstall package using deb module in Ansible

今天,我在使用Ansible時遇到問題,並嘗試卸載debian軟件包。 該軟件包不是來自存儲庫,而是直接來自.deb文件,因此,在Ansible中,我定義了安裝任務:

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

實際可行,該軟件包已安裝在SO中

但是,是時候刪除它了:

- 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。

編輯:我認為我做得很好,因為下面的ansible示例

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

對於那些想知道為什么未定義“-名稱”的人,是因為任務是處理程序。

我是個傻男孩。 在查看了我最近在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,明天的經驗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM