I try to install NGINX from an Ansible playbook.
Currently I use this playbook to install it:
---
- hosts: all
gather_facts: true
become: true
become_user: root
tasks:
- apt:
name: nginx
when: ansible_os_family == "Debian"
And it works:
Identity added: /runner/artifacts/46/ssh_key_data (root@debian)
SSH password:
PLAY [all] *********************************************************************
TASK [Gathering Facts] *********************************************************
ok: [192.168.1.75]
TASK [apt] *********************************************************************
changed: [192.168.1.75]
PLAY RECAP *********************************************************************
192.168.1.75 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
But I would like to see the state of the NGINX service at the end of my playbook, like that:
Identity added: /runner/artifacts/46/ssh_key_data (root@debian)
SSH password:
PLAY [all] *********************************************************************
TASK [Gathering Facts] *********************************************************
ok: [192.168.1.75]
TASK [apt] *********************************************************************
changed: [192.168.1.75]
TASK [Verify nginx state] *********************************************************************
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2022-02-14 17:59:13 CET; 20s ago
Docs: man:nginx(8)
Process: 1723 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 1724 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 1907 (nginx)
Tasks: 2 (limit: 445)
Memory: 5.6M
CPU: 99ms
CGroup: /system.slice/nginx.service
├─1907 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─1910 nginx: worker process
PLAY RECAP *********************************************************************
192.168.1.75 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Or something similar.
How can this be achieved?
CodePudding user response:
Regarding your requirement
I would like to see the state of the
nginx
service a the end of my playbook
it is recommended just to use the systemd
module.
- name: Make sure 'nginx' is started
systemd:
name: nginx
state: started
enabled: yes
register: result
- name: Show result
debug:
msg: "{{ result }}"
For later check of specific services you can use service_facts
.
- name: Gathering service facts
service_facts:
- name: Get facts
debug:
msg:
- "{{ ansible_facts.services['nginx'].status }}"
CodePudding user response:
you could get that detail from the sudo command here
- name: check for service status
shell: sudo service nginx status
ignore_errors: true
register: nginxstatus
- name: Show service service status
debug:
msg: 'nginxstatus exists.'
when: nginxstatus.rc | int == 0
CodePudding user response:
or even better
- name: Check status of the nginx server
shell: 'systemctl nginx status'
register: command_output
- debug:
var: command_output.stdout_lines