-1
我所針對的計算機理論上應該爲每個單獨的客戶端運行一個名爲「marketaccess {client_name}」的進程,並且我希望確保此進程正在運行。對於檢查流程是否正在運行,Ansible證明是非常具有挑戰性的。下面是我試圖用來查看給定機器上是否有進程運行的劇本。我打算在'stdout'上運行一個條件,並說如果它不包含客戶的名字,那麼針對該客戶運行一個重新啓動進程腳本。問題是,當我運行這個劇本時,它告訴我字典對象沒有屬性'stdout',但是當我刪除'.stdout'時它運行正常,我可以清楚地看到service_status的stdout值。檢查Ansible進程的狀態
- name: Check if process for each client exists
shell: ps aux | grep {{ item.key|lower }}
ignore_errors: yes
changed_when: false
register: service_status
with_dict: "{{ customers }}"
- name: Report status of service
debug:
msg: "{{ service_status.stdout }}"
嗨康斯坦丁,感謝您的建議。你能否推薦一個更好的方式來編寫這個劇本,以便可以在一個簡單的單一任務中單獨檢查流程? –