前言

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

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

通过一个个具体的实战案例,来生动演示 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 状态的更多相关文章

  1. ansible学习笔记一

    ansible学习笔记一 参考博客: ansible学习 - 51CTO博客 一.安装 1 .下载epel源 wget -O /etc/yum.repos.d/epel.repo http://mir ...

  2. ArcGIS案例学习笔记-批量裁剪地理模型

    ArcGIS案例学习笔记-批量裁剪地理模型 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 功能:空间数据的批量裁剪 优点:1.批量裁剪:任意多个目标数据,去裁剪任意 ...

  3. [原创]java WEB学习笔记31:会话与状态管理 session机制 概述(定义,session机制,session的声明周期,保存session的方式,Session的创建与删除)

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  4. [原创]java WEB学习笔记28: 会话与状态管理Cookie 机制

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  5. .net学习笔记----二级域名站点共享Session状态

    前面一篇文章提到了如何在使用了ASP.NET form authentication的二级站点之间共享登陆状态, http://www.cnblogs.com/jzywh/archive/2007/0 ...

  6. Ansible 学习笔记

    最近因为需要管理很多台机器,而这些机器又需要频繁重新安装,实在受不了Puppet需要在每个客户机上都安装一遍,于是转头开始学些Ansible.根据这段时间的使用,这个确实是神器,唯一的感觉就是相见恨晚 ...

  7. Ansible学习笔记

    一.Ansible简介 Ansible是一种agentless(基于ssh),可实现批量配置.命令执行和控制,基于Python实现的自动化运维工具. 其特性有: ①模块化:通过调用相关模块,完成指定任 ...

  8. ansible学习笔记三:playbook和roles

    参考博客: Ansible 系列之 Playbooks 剧本 -飞走不可(博客园) linux运维学习之ansible的playbook及roles的使用 - 51CTO博客 nginx 基于uwsg ...

  9. ansible学习笔记二

    Ad-Hoc命令: 所谓Ad-Hoc,简而言之是"临时命令",英文中作为形容词有"特别的,临时"的含义.Ad-Hoc只是官方对Ansible命令的一种称谓. 从 ...

  10. 我的Ansible学习笔记

    Ansible常见错误 http://afewbug.com/article/26官方文档 http://docs.ansible.com/ansible/安装配置 http://sofar.blog ...

随机推荐

  1. SpringCloud Eureka基本使用

    1. 简介 Eureka是Netflix开发的服务发现框架,并被Spring cloud 收录 并封装成为其服务治理的模块实现 Eureka采用了CS的架构设计,分为 Server端 和 Client ...

  2. 牛客“迎新春,过大年”多校程序设计竞赛A题

    题目描述: 这里有个小trick 当时也看到数据范围的问题了 \(n是1e6 \quad \sum_{i=1}^na[i]<=5e7\) 我们考虑不同的数\(1 \quad 2 \quad .. ...

  3. great [ɡreɪt] ɡr 然后 eɪt 单词发音 r和前面的辅音连读

    great [ɡreɪt] ɡr 然后 eɪt 单词发音 r和前面的辅音连读

  4. Python Numpy 中的打印设置函数set_printoptions

    一 概述 np.set_printoptions()用于控制Python中小数的显示精度. 二 解析 np.set_printoptions(precision=None, threshold=Non ...

  5. Kotlin 快速遍历File及子目录筛选指定类型文件

    原文: Kotlin 快速遍历File及子目录筛选指定类型文件 - Stars-One的杂货小窝 在做文件相关的app,经常会遇到筛选某个文件夹下的符合条件的文件对象,且要包含子文件夹,之前一直是自己 ...

  6. C++ 派生类对象的构造与析构过程

    C++ 派生类对象的构造与析构过程 因为基类的成员变量和派生类的成员变量在内存中的连续的(下面程序会验证这一点),如下图所示: 所以构造派生类对象的时候,构造成员变量的过程就像入栈一样: 那么很自然, ...

  7. 矢量数据库与LLM的集成:实践指南

    矢量数据库与LLM的集成:实践指南 本文将了解到什么是矢量数据库,以及如何与LLMs进行集成.通过LLMs和向量数据库的结合,可以节省微调带来的开销和时间. 通常,LLM会在各种各样的数据上进行训练, ...

  8. shell实现简单的数组排序

    c++代码 int nums[8]={1,2,1,3,4,2,5,6}; int length=8; for(int i=0;i<length;i++){ for(int j=i+1;j< ...

  9. Android富文本开发

    基础概念目录介绍 01.业务需求简单介绍 02.实现的方案介绍 03.异常状态下保存状态信息 04.处理软键盘回删按钮逻辑 05.在指定位置插入图片 06.在指定位置插入输入文字 07.如果对选中文字 ...

  10. 三维模型OBJ格式轻量化压缩在移动智能终端应用方面的重要性分析

    三维模型OBJ格式轻量化压缩在移动智能终端应用方面的重要性分析 三维模型的OBJ格式轻量化压缩在移动智能终端应用方面具有重要性.以下是对三维模型OBJ格式轻量化压缩在移动智能终端应用方面重要性的分析: ...