Ansible

Ansible - nginx 包被刪除,但服務正在伺服器上執行

  • June 30, 2022

我正在嘗試學習 Ansible,但我有奇怪的事情。我有以下劇本:

---
- name: "Uninstall apache server"
 hosts: all
 become: true
 tasks:
   - name: "Uninstall packages"
     apt:
       name: nginx
       state: absent
   - name: "Stop nginx"
     service:
       name: nginx
       state: stopped
       enabled: no

問題在於執行,我的意思是我得到了: 在此處輸入圖像描述 那意味著沒有安裝包,但在控制台中我看到 在此處輸入圖像描述 當我寫

apt-get remove nginx

我有

在此處輸入圖像描述

但是為什麼我的服務存在並且正在執行?我做了這一步:

  1. 通過 ansible playbook 安裝 nginx - 狀態存在
  2. 通過 ansible playbook 解除安裝 nginx - 狀態不存在

結果是:包被刪除,但服務仍然存在並且工作。我做錯了什麼?

這是正常行為,與ansible無關。如果您手動執行相同的步驟(至少在 Ubuntu 上),您會得到相同的結果。

原因是,該服務不屬於nginx包,而是屬於nginx-common作為依賴項安裝的 。

要解決此問題,您需要執行apt autoremove,它會刪除所有未明確安裝且不再需要的包。

在 ansible 中,您可以通過設置預設設置為的autoremove屬性來做到這一點。no

- name: "Uninstall packages"
 apt:
   name: nginx
   state: absent
   autoremove: yes

引用自:https://serverfault.com/questions/1104494