关于运维:Ansible-学习笔记-批量巡检站点-URL-状态

5次阅读

共计 1206 个字符,预计需要花费 4 分钟才能阅读完成。

前言

不快人快语,不东拉西扯。

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

通过一个个具体的实战案例,来活泼演示 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/ansi…
  5. url: 具体的 要巡检的站点的 URL 地址
  6. itemwith_items: 通过这 2 个参数实现循环批量执行
  7. vars: 定义该 Playbook 中用到的变量。

返回 json

如果须要返回 json 做进一步解决,能够应用 json callback plugin。如下:

#!/bin/bash

export ANSIBLE_CALLBACK_WHITELIST=json
export ANSIBLE_STDOUT_CALLBACK=json
ansible-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/ansi…
  2. ANSIBLE_STDOUT_CALLBACK: 指定规范输入采纳 json callback 插件,输入内容为 json 格局。
  3. json callback 插件官网文档:https://docs.ansible.com/ansi…
  4. 另外还有一个 syslog_json 插件:https://docs.ansible.com/ansi…

EOF

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

正文完
 0