美文网首页
Ansible 学习笔记 - 批量巡检站点 URL 状态

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

作者: 东风微鸣 | 来源:发表于2023-01-15 09:32 被阅读0次

    前言

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

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

    通过一个个具体的实战案例,来生动演示 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/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/ansible/2.9/plugins/callback.html
    2. ANSIBLE_STDOUT_CALLBACK: 指定标准输出采用 json callback 插件,输出内容为 json 格式。
    3. json callback 插件官方文档: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 编写.

    相关文章

      网友评论

          本文标题:Ansible 学习笔记 - 批量巡检站点 URL 状态

          本文链接:https://www.haomeiwen.com/subject/fvxacdtx.html