Имеется «самописная» Ansible роль
letsencrypt
. (см. Prometheus: мониторинг для RTFM — Grafana, Loki и promtail).
Перед запуском Let’s Encrypt клиента для получения сертификатов — надо проверить, установлен ли в системе NGINX.
Используем модуль package_facts
:
... - name: "Check if NGINX is installed" package_facts: manager: "auto" ...
И затем условную проверку по массиву ansible_facts.packages
:
... - name: "NGINX test result" debug: msg: "NGINX found" when: "'nginx' in ansible_facts.packages" - name: "NGINX test result" debug: msg: "NGINX NOT found" when: "'nginx' not in ansible_facts.packages"
Проверяем:
[simterm]
... TASK [test : Check if NGINX is installed] **** ok: [ssh.dev.rtfm.co.ua] TASK [test : NGINX test result] **** ok: [ssh.dev.rtfm.co.ua] => { "msg": "NGINX found" } TASK [test : NGINX test result] **** skipping: [ssh.dev.rtfm.co.ua] PLAY RECAP **** ssh.dev.rtfm.co.ua : ok=3 changed=0 unreachable=0 failed=0 ...
[/simterm]
Удаляем NGINX:
[simterm]
root@rtfm-do-dev:~# apt purge nginx
[/simterm]
Проверяем ещё раз:
[simterm]
... TASK [test : Check if NGINX is installed] **** ok: [ssh.dev.rtfm.co.ua] TASK [test : NGINX test result] **** skipping: [ssh.dev.rtfm.co.ua] TASK [test : NGINX test result] **** ok: [ssh.dev.rtfm.co.ua] => { "msg": "NGINX NOT found" } PLAY RECAP **** ssh.dev.rtfm.co.ua : ok=3 changed=0 unreachable=0 failed=0
[/simterm]
Готово.