Anda dapat memeriksa dengan failed
filter Jinja2 setelah menjalankan perintah Anda yang memeriksa apakah proses sedang berjalan.
Berikut adalah contoh yang menggunakan output dari perintah systemctl status apache2
untuk memutuskan apakah Apache berjalan:
- name: Check if Apache is running
command: systemctl status apache2
ignore_errors: yes
changed_when: false
register: service_apache_status
- name: Report status of Apache
fail:
msg: |
Service apache2 is not running.
Output of `systemctl status apache2`:
{{ service_apache_status.stdout }}
{{ service_apache_status.stderr }}
when: service_apache_status | failed
Jika perintah tugas pertama gagal, tugas kedua akan gagal dan menunjukkan mengapa tugas pertama gagal.
Kode pengembalian disimpan di service_apache_status.rc
.
Contoh output dari kegagalan:
TASK: [Check if Apache is running] ***********************
failed: [localhost] => {"changed": false, "cmd": ["systemctl", "status", "apache2"], "delta": "0:00:00.009379", "end": "2016-06-06 15:17:27.827172", "rc": 3, "start": "2016-06-06 15:17:27.817793", "stdout_lines": ["* apache2.service", " Loaded: not-found (Reason: No such file or directory)", " Active: inactive (dead)"], "warnings": []}
stdout: * apache2.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
...ignoring
TASK: [Report status of Apache] ***************************
failed: [localhost] => {"failed": true}
msg: apache2 is not running
systemctl status apache2 output:
* apache2.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
Berikut ini cara yang berbeda (walaupun mungkin kurang dapat diandalkan), menggunakan pgrep
, untuk memeriksa apakah proses sedang berjalan:
- name: Check if Apache is running
shell: pgrep apache2
ignore_errors: yes
changed_when: false
register: service_apache_status
- name: Report status of Apache
fail:
msg: |
Service apache2 is not running.
Return code from `pgrep`:
{{ service_apache_status.rc }}
when: service_apache_status.rc != 0
when: service_apache_status | failed
kerjanya? Apakah itu mencarifailed
tokenservice_apache_status
?