1

I'm trying to learn Ansible, but I have strange thing. I have below playbook:

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

Problem is with execution, I mean I got: enter image description here That mean package is not installed, but in console I see enter image description here When I write

apt-get remove nginx

I got

enter image description here

But why my services exist and is running? I did this step:

  1. Install nginx by ansible playbook - state present
  2. Uninstall nginx by ansible playbook - state absent

Result is: package is removed but services still exist and working. What I do wrong?

PawelC
  • 149
  • 1
  • 11

1 Answers1

2

This is normal behavior, it has nothing to do with ansible. If you do the same steps manually (on an Ubuntu at least) you get the same result.

The reason is, the service does not belong to the nginx package, but to nginx-common, which was installed as a dependency.

To resolve this you need to run apt autoremove, which removes all packages that were not installed explicitly and are not longer needed.

In ansible you can do this by setting the autoremove attribute, which is set to no by default.

- name: "Uninstall packages"
  apt:
    name: nginx
    state: absent
    autoremove: yes
Gerald Schneider
  • 23,274
  • 8
  • 57
  • 89