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

打印 上一主题 下一主题

主题 542|帖子 542|积分 1626

前言

不拖泥带水,不东拉西扯。
速战速决,五分钟学到一个工作用得上的技巧。
通过一个个具体的实战案例,来生动演示 Ansible 的用法。
需求

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

check_url_status.yml 如下:
  1. ---
  2. - hosts: localhost
  3.   gather_facts: no
  4.   serial: 10
  5.   tasks:
  6.     - name: check url status
  7.       uri:
  8.         url: "{{ item }}"
  9.         timeout: 10
  10.         return_content: no
  11.         follow_redirects: safe
  12.         validate_certs: yes
  13.       with_items: "{{ url_list }}"
  14.   vars:
  15.     url_list:
  16.     - https://www.baidu.com
  17.     - https://www.taobao.com
  18.     - https://www.qq.com
复制代码
通过 ansible-playbook ./check_url_status.yml 即可,返回结果如下:
详细说明


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

如果需要返回 json 做进一步处理,可以使用 json callback plugin。如下:
  1. #!/bin/bash
  2. export ANSIBLE_CALLBACK_WHITELIST=json
  3. export ANSIBLE_STDOUT_CALLBACK=json
  4. ansible-playbook ./check_url_status.yml > ./url_status_$(date +"%Y-%m-%d").json
复制代码
详细说明

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

一给

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表