Ansible 如何针对 URL 做健康检查,确保是正常服务的?
目标
假如有一个 URL 叫 http://www.example.com
,我们想看看是否能正常访问。
方法一
最直接的方法当然是使用 ansible.builtin.shell
,然后执行
$ curl ${url}
写作 playbook 就是:
---
- name: curl a url
ansible.builtin.shell:
cmd: "curl {{ url }}"
...
方法二
其实,ansible 提供了 ansible.builtin.uri
模块用于和 web 服务产生交互。如果想检查 URL 的服务是否正常,可以用下面简单的做法:
---
- name: health check
ansible.builtin.uri:
url: "{{ url }}"
...
这个方法直接发送 GET 请求到 {{ url }}
并且检查返回的状态码是否 200