Ansible
Ansible - nginx 包被刪除,但服務正在伺服器上執行
我正在嘗試學習 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
我有
但是為什麼我的服務存在並且正在執行?我做了這一步:
- 通過 ansible playbook 安裝 nginx - 狀態存在
- 通過 ansible playbook 解除安裝 nginx - 狀態不存在
結果是:包被刪除,但服務仍然存在並且工作。我做錯了什麼?
這是正常行為,與ansible無關。如果您手動執行相同的步驟(至少在 Ubuntu 上),您會得到相同的結果。
原因是,該服務不屬於
nginx
包,而是屬於nginx-common
作為依賴項安裝的 。要解決此問題,您需要執行
apt autoremove
,它會刪除所有未明確安裝且不再需要的包。在 ansible 中,您可以通過設置預設設置為的
autoremove
屬性來做到這一點。no
- name: "Uninstall packages" apt: name: nginx state: absent autoremove: yes