最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

Ansible 学习笔记 - 批量巡检站点 URL 状态

来源:博客园


(资料图片仅供参考)

前言

不拖泥带水,不东拉西扯。

速战速决,五分钟学到一个工作用得上的技巧。

通过一个个具体的实战案例,来生动演示 Ansible 的用法。

需求

我需要定期巡检或定时监控我公司的所有站点的首页的可用性状态。

Ansible Playbook 实战脚本

check_url_status.yml如下:

---- hosts: localhost  gather_facts: no  serial: 10  tasks:    - name: check url status      uri:        url: "{{ item }}"        timeout: 10        return_content: no        follow_redirects: safe         validate_certs: yes      with_items: "{{ url_list }}"  vars:    url_list:    - https://www.baidu.com    - https://www.taobao.com    - https://www.qq.com

通过 ansible-playbook ./check_url_status.yml即可,返回结果如下:

详细说明

  1. 这里使用 ansible-playbook来执行,以编排好的「剧本」形式执行。
  2. hosts: localhost在本机执行此次任务,也可以指定其他机器;
  3. serial: 10: 明确定义 Ansible 如何批量执行当前剧本的目标
  4. uri: 使用了 URI 插件,参考链接:https://docs.ansible.com/ansible/2.9/modules/uri_module.html
  5. url: 具体的 要巡检的站点的 URL 地址
  6. itemwith_items: 通过这 2 个参数实现循环批量执行
  7. vars: 定义该 Playbook 中用到的变量。

返回 json

如果需要返回 json 做进一步处理,可以使用 json callback plugin。如下:

#!/bin/bashexport ANSIBLE_CALLBACK_WHITELIST=jsonexport ANSIBLE_STDOUT_CALLBACK=jsonansible-playbook ./check_url_status.yml > ./url_status_$(date +"%Y-%m-%d").json

详细说明

  1. ANSIBLE_CALLBACK_WHITELIST=json: 指定 Ansible Callback Whitelist 为 json;Callback 官方文档:https://docs.ansible.com/ansible/2.9/plugins/callback.html
  2. ANSIBLE_STDOUT_CALLBACK: 指定标准输出采用 jsoncallback 插件,输出内容为 json 格式。
  3. jsoncallback 插件官方文档:https://docs.ansible.com/ansible/2.9/plugins/callback/json.html
  4. 另外还有一个 syslog_json插件:https://docs.ansible.com/ansible/2.9/plugins/callback/syslog_json.html

EOF

三人行, 必有我师; 知识共享, 天下为公.本文由东风微鸣技术博客 EWhisper.cn 编写.

关键词: 详细说明 还有一个 速战速决