我正在尝试以下剧本。但即使在收到来自处理程序的错误后,救援部分仍不起作用。
handlers:
- name: port status
shell: netstat -nltp | grep {{ app1_port }}
register: port
listen: port_status
- name: display port status
debug: var=port.stdout_lines
listen: port_status
tasks:
- name: Reload service if checks fail
block:
- name: Check process status
shell: ps -aux | grep {{ app1 }} | grep -v grep
notify: port status
rescue:
- name: fetching proc ids
shell: ps -aux | grep {{ app2 }} | grep -v grep | awk '{print $2}'
register: result
ignore_errors: True
- name: Reloading config
shell: "kill -HUP {{ item }}"
with_items:
- "{{ result.stdout_lines }}"
notify: port_status
下面是我在运行时得到的输出。
任务 [检查服务状态] ************************************************************************************************************* 更改了:[localhost]
正在运行的处理程序 [端口状态] ************************************************************************************************************************* 致命:[localhost]:失败! => {“changed”: true, “cmd”: “netstat -nltp | grep 3306”, “delta”: “0:00:00.017951”, “end”: “2019-03-13 22:04:41.024950”, “msg”: “非零返回码”, “rc”: 1, “start”: “2019-03-13 22:04:41.006999”, “stderr”: “”, “stderr_lines”: [], “stdout”: “”, “stdout_lines”: []}
没有剩余主机 ************************************************************************************************************************* 要重试,请使用:--limit @/home/sachin/ansible.retry
播放回顾 ************************************************************************************************************************* 本地主机:ok=1 已更改=1 无法访问=0 已失败=1