我使用 Ansible 運行啟動腳本,如下所示:
- name: Start service
raw: "source ~/.profile; ~/start.sh"
現在,我想繼續檢查我上面啟動的服務的 HTTP 狀態,直到它成功 - 200
。
以下是我檢查 HTTP 狀態的方法200
,但是,我不知道如何繼續檢查 2 分鐘并報告 URL 是否仍然沒有回傳200
。
- name: Detect if HTTp response is '200'
uri:
url: 'http://myhost/iportal/'
return_content: yes
validate_certs: no
status_code:
- 200
register: uri_output
uj5u.com熱心網友回復:
使用until
回圈:
- name: Wait until HTTP status is 200
uri:
url: 'http://myhost/iportal/'
return_content: yes
validate_certs: no
status_code:
- 200
until: uri_output.status == 200
retries: 24 # Retries for 24 * 5 seconds = 120 seconds = 2 minutes
delay: 5 # Every 5 seconds
register: uri_output
請注意:在這種情況下,如果您的請求最終超時,您可能會看到不同的時間。模塊的默認timeout
值為uri
30 秒。
在這種情況下,您將有 24 次重試 * 5 秒延遲 24 次重試 * 30 秒直到超時,因此大約需要 14 分鐘。
從那里開始,調整超時或重試次數,或兩者兼而有之。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/483951.html