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

ansible,学习,笔记,批量,巡检,站点,url,状态 · 浏览次数 : 109

小编点评

** Ansible Playbook 实战脚本:check_url_status.yml** ```yaml --- 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 ``` ** 使用说明:** 1. 将 `check_url_status.yml` 文件复制到你的 working 目录中。 2. 在终端中运行以下命令: ```bash ansible-playbook ./check_url_status.yml ``` 3. 这将执行 `check_url_status.yml` Playbook,并返回一个 JSON 文件,其中包含当前系统可用性状态的信息。 ** 示例结果:** ```json { "url_list": [ "https://www.baidu.com", "https://www.taobao.com", "https://www.qq.com" ], "status": { "baidu.com": { "code": 200, "msg": "OK" }, "taobao.com": { "code": 200, "msg": "OK" }, "qq.com": { "code": 200, "msg": "OK" } } } ``` ** 注意事项:** * 该 Playbook 需要 Python 3.6 或更高版本才能运行。 * 该 Playbook 使用 `json` 插件返回 JSON 数据。 * 你需要在 Playbook 中设置 `url_list` 这项,包含要检查的网站的 URL。 * 你可以根据需要修改 Playbook 中的其他参数。

正文

前言

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

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

通过一个个具体的实战案例,来生动演示 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 状态相似的内容:

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

前言 不拖泥带水,不东拉西扯。 速战速决,五分钟学到一个工作用得上的技巧。 通过一个个具体的实战案例,来生动演示 Ansible 的用法。 需求 我需要定期巡检或定时监控我公司的所有站点的首页的可用性状态。 Ansible Playbook 实战脚本 check_url_status.yml 如下:

Ansible 学习笔记 - 定位主机和组的模式

中英文对照表 | 英文 | 中文 | 备注 | | | | | | host | 主机 | | | group | (主机)组 | | | pattern | 模式 | | | ad hoc | 特别命令 | | | playbook | 剧本 | Ansible 专有名词,一段复杂的编排 | |

Python学习之十_paramiko的简单学习

Python学习之十_paramiko的简单学习 简介 pywinrm 是python用于连接访问windows的工具 paramiko 是python用于连接访问linux的工具 ansible等工具很多也是基于类似的组件进行的处理 连接不同的系统进行命令行的操作. paramiko的简介 par

Ansible的常用模块

目录ansible常用模块1. file模块1.1 file模块的选项1.2 file模块的使用1.2.1 使用file模块在远程主机创建文件1.2.2 创建目录1.2.3 删除文件/目录2. copy模块2.1 copy模块的选项2.2 copy模块的使用3. yum_repository模块3.

ansible自定义模板部署apache服务

使用Ansible来部署Apache服务是一个很好的选择,因为它可以自动化部署过程,确保所有的服务器上都有相同的配置。以下是一个简单的步骤指南,展示如何使用Ansible来部署Apache服务: 1 创建角色目录 首先,在 /etc/ansible/roles 下创建 apache 目录: mkdi

[转帖]ansible小结(七)常用模块

ansible小结(七)常用模块 http://www.361way.com/ansible-modules/4415.html 在上一篇中介绍了commands部分模块,本篇承接上篇介绍下常用的模块。根据官方的分类,将模块按功能分类为:云模块、命令模块、数据库模块、文件模块、资产模块、消息模块、监

[转帖]ansible 安装 K8S

作者:山河已无恙链接:https://www.zhihu.com/question/315497851/answer/2898814729来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 写在前面分享一个 k8s 高可用集群部署的 Ansible 剧本以及涉及到的一些工

[转帖]太厉害了,终于有人能把Ansible讲的明明白白了,建议收藏

https://zhuanlan.zhihu.com/p/530678807 一: ansible 的概述 1. ansible简介 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。 它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要

[转帖]别让运维太忙,一文详解 Ansible 的自动化运维

https://zhuanlan.zhihu.com/p/270655214 一、Ansible 概述 Ansible 是近年来越来越火的一款开源运维自动化工具,通过Ansible可以实现运维自动化,提高运维工程师的工作效率,减少人为失误。 Ansible 通过本身集成的非常丰富的模块可以实现各种管

京东云开发者|IoT运维 - 如何部署一套高可用K8S集群

环境 准备工作 配置ansible(deploy 主机执行) # ssh-keygen # for i in 192.168.3.{21..28}; do ssh-copy-id -i ~/.ssh/id_rsa.pub $i; done [root@deploy ~]# cat /etc/ansi